【发布时间】:2016-09-07 23:01:15
【问题描述】:
我正在尝试将朋友 ID 列表从我的 firebase 数据库中提取到我的应用程序中,然后通过在“用户”使用他们的唯一 ID
我的架构如下所示:
{friends
{
"Ko2D1of4KxXHzX0OqEZEAKDfw4r2" : {
"-KR0aTQGT6pfRfB5qIUz" : {
"friend_id" : "6vFVAAQfwiYERl03C3lzxdPjnEp2"
},
"-KR0aaMAOS3FWOAosBmo" : {
"friend_id" : "kxrQFVjGv0XUHyV5N764Nq50Q3J3"
}
}
}
}
第一个唯一的 ID 是玩家的 ID,可以查询他们的好友列表。的子对象表示关系的ID,其下的friend_id表示其他玩家(朋友)的ID
用户架构如下所示:
{
"6vFVAAQfwiYERl03C3lzxdPjnEp2" : {
"emailAddress" : "b@b.com",
"level" : 1,
"userName" : "steve"
},
"Ko2D1of4KxXHzX0OqEZEAKDfw4r2" : {
"emailAddress" : "a@a.com",
"level" : 1,
"userName" : "bob"
},
"kxrQFVjGv0XUHyV5N764Nq50Q3J3" : {
"emailAddress" : "bg@b.com",
"level" : 1,
"userName" : "tim"
},
"rNtYvwF8LBhTRM1Wk8ybBJyrFIg2" : {
"emailAddress" : "c@c.com",
"level" : 1,
"userName" : "test account"
}
}
现在,在我的应用程序中,我可以成功提取所有friend_id 条目,但不知道如何转身并使用此ID 提取有关朋友的其他信息。理想情况下,我可以通过他们唯一的玩家 ID 逐个查询每个朋友,并使用 firebaseListAdapter 填充我拥有的朋友列表片段。
这就是我拉朋友 ID 并填充列表对象的方式。
ValueEventListener friendListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
friendIdList.clear();
for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) {
String friend_id = (String) messageSnapshot.child("friend_id").getValue();
friendIdList.add(friend_id);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
mDatabase.addValueEventListener(friendListener);
一旦从初始查询中收到 ID,谁能帮我找出最好的方法来提取朋友的所有这些额外信息?
【问题讨论】:
标签: android firebase firebase-realtime-database listadapter