【发布时间】:2017-06-10 15:44:30
【问题描述】:
在我的 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()).addChildEventListener(new ChildEventListener()
我似乎可以弄清楚我做错了什么,因为我所尝试的似乎合乎逻辑并且应该有效。请有人帮帮我。
已编辑:
public ArrayList<data> get(String userID){
df.child("UsersTable").child(userID).addChildEventListener(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 );
}
}
【问题讨论】:
-
您能否在子事件监听器中添加代码。错误似乎从那里传播
-
请看更新
-
为什么在 u_id 中使用 key?
-
它的推送 ID 将来自同一用户的条目存储为唯一的。因为 1 个用户可以在他们的 id 下添加多个数据,我希望每个数据都是唯一的,而不是覆盖以前的
-
哦,我添加解决方案检查它
标签: android android-studio firebase firebase-realtime-database userid