【发布时间】:2018-04-03 16:18:05
【问题描述】:
我想显示某个 id 关注的用户的帖子。 我正在使用 FirebaseRecyclerAdapter 来获取帖子。
我的数据库id结构如下是json
"Allposts" : {
"-LnDkoPgr0fPAUSnackF" : {
"author" : "jack",
"postimage" : "posturl",
"profile" : "profileurl",
"uid" : "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2"
},
"-Lnll3vNF8wABv899SoQ" : {
"author" : "merry",
"postimage" : "posturl",
"profile" : "profileurl",
"uid" : "KOag2Br7MOaJqJNSFbcTD3ljEnh2"
}
"Users" : {
"8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" : {
"following" : {
"KOag2Br7MOaJqJNSFbcTD3ljEnh2" : true
},
"name" : "username",
"posts" : {
"-KnDkoPdke4p4Ns8NUkR" : true
},
"profilepic" : "profileurl",
"userName" : "username"
},
"KOag2Br7MOaJqJNSFbcTD3ljEnh2" : {
"following" : {
"8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" : true,
"KOag2Br7MOaJqJNSFbcTD3ljEnh2" : true
},
"name" : "name",
"posts" : {
"-KnDl3vFUlSxyRm0z547" : true
},
"profilepic" : "profileurl",
"userName" : "username"
}
},
"UsersPost" : {
"8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" : {
"-KnDkoPdke4p4Ns8NUkR" : {
"author" : "jack",
"full_url" : "posturl",
"profile" : "profileurl",
"uid" : "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2"
}
},
"KOag2Br7MOaJqJNSFbcTD3ljEnh2" : {
"-KnDl3vFUlSxyRm0z547" : {
"author" : "marry",
"full_url" : "posturl",
"profile" : profileurl",
"uid" : "KOag2Br7MOaJqJNSFbcTD3ljEnh2"
}
}
},
},
我正在使用以下方法获取以下帖子
mFollowing = FirebaseDatabase.getInstance().getReference().child("Users").child(currentUser).child("following");
mDatabase = FirebaseDatabase.getInstance().getReference().child("UsersPost");
protected void onStart() {
super.onStart();
mFollowing.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot following : dataSnapshot.getChildren()){
DatabaseReference ref = mDatabase.child(following.getKey());
mAdapter = new FirebaseRecyclerAdapter<Post, PostViewHolder>(Post.class,
R.layout.post_item,PostViewHolder.class,ref) {
@Override
protected void populateViewHolder(PostViewHolder viewHolder, Post model, int position) {
viewHolder.bindToPost(model);
}
};
mRecyclerView.setAdapter(mAdapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
但它只显示最后一个用户的帖子:
Users {
following {
userid (1)
userid (2)
userid (3)
}
}
仅显示 uid 3 的帖子,不显示 uid 1 和 2 的帖子
如何在以下节点下显示所有用户的帖子?
【问题讨论】:
-
任何人请给出答案...
标签: android firebase firebase-realtime-database firebase-authentication