gpt4 book ai didi

android - 如何从一个 userID Firebase Android 中检索数据

转载 作者:太空狗 更新时间:2023-10-29 13:10:26 25 4
gpt4 key购买 nike

在我的 firebase 数据库中,我有一个用户列表,它们下面有不同的信息。我想从我将在代码中定义的单个 userId 检索信息,我只想从该用户获取信息。

我的数据是这样的;

UserTable
{
"fmXWU324VHdDb8v6h7gvNjRojnu33" : {
"-KbJtw467nl6p253HZ537" : {
"Name" : "name1",
"Email" : "something1@something.com",
"userid" : "fmXWU324VHdDb8v6h7gvNjRojnu33"
}
},
"pJtC45fW0MMi352UiPWnWdIS7h88" : {
"-Kb012ls9iMnzEL723o9I" : {
"Name" : "name2",
"Email" : "something2@something.com",
"userid" : "pJtC45fW0MMi352UiPWnWdIS7h88"
},
"-Kb0aq0q25FJq38256SrC" : {
"Name" : "name3",
"Email" : "something3@something.com",
"userid" : "pJtC45fW0MMi352UiPWnWdIS7h88"
},
"-Kb0atopfK64F6jy124Qi1u" : {
"Name" : "name3",
"Email" : "something1@something.com",
"userid" : "pJtC45fW0MMi352UiPWnWdIS7h88"
}
}

例如,我想读取并显示来自该用户 “fmXWU324VHdDb8v6h7gvNjRojnu33” 的所有数据。我不确定我该怎么做。我试过了,这似乎合乎逻辑,但似乎不起作用:

df.child("UserTable").child(user.getUid())).addChildEventListener(new ChildEventListener()

它给出了这个错误:

Can't convert object of type java.lang.String to type com.android.example.UserTable

另外,我试过:

df.child("UsersTable").child("userid").child(user.getUid()).ad‌​dChildEventListener(‌​new ChildEventListener() 

我似乎可以弄清楚我做错了什么,因为我尝试过的似乎合乎逻辑并且应该有效。请有人帮助我。

编辑:

public ArrayList<data> get(String userID){

df.child("UsersTable").child(userID).ad‌​dChildEventListener(‌​new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
fetch(dataSnapshot);
}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
fetch(dataSnapshot);
}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

return data;

更新

private void fetchData(DataSnapshot dataSnapshot)
{

for (DataSnapshot ds : dataSnapshot.getChildren())
{
Userdetail userdetail =ds.getValue(Userdetail.class);
userdetails.add(userdetail );
}
}

最佳答案

首先像这样初始化你的数据库

mDatabase= FirebaseDatabase.getInstance().getReference().child("your_node_name");

然后尝试将 ValueEventListener 设置为您的数据库引用。在 onDataChange 方法中,您可以像这样检索数据

public void onDataChange(DataSnapshot dataSnapshot) {
User user= dataSnapshot.getValue(User.class);
}

编辑:

ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user= dataSnapshot.getValue(User.class);
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
};
mDatabase.addValueEventListener(postListener);

关于android - 如何从一个 userID Firebase Android 中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41851973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com