如何在单个查询对象中检索有关同一组中用户的所有信息?这是为了填充显示用户的一些列表ui。我正在使用FirebaseRecyclerAdapter,并且在其构造函数中它需要一个查询对象。我的数据结构与firebase文档中“结构化您的数据库”页面的结构相同。
在我的特定情况下,我试图获取在一个查询对象中由单个用户添加书签的所有故事。我的数据结构如下所示:
我试图这样做:
Query recentPostsQuery = databaseReference.child("users/" + uid + "/bookmarks");
recentPostsQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot storySnapshot : dataSnapshot.getChildren()) {
databaseReference.child("stories/" + storySnapshot.getKey());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
然而,它不起作用,我不太清楚为什么。
答案 0 :(得分:0)
我猜你有一个列表来存储故事和模型类故事。
Query recentPostsQuery = databaseReference.child("users/" + uid + "/bookmarks");
recentPostsQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot storySnapshot : dataSnapshot.getChildren()) {
databaseReference.child("stories/" + storySnapshot.getKey()).addListenerForSingleValueEvent(new ValueEventListner(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Stories your model class
for (DataSnapshot story : dataSnapshot.getChildren()){
Stories story = story.getValue(Stories.class);
//add story to list for showing in recycler view
// also call adapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
我想这有帮助..