【发布时间】:2018-07-29 01:46:29
【问题描述】:
我的目标是从user2 关注的user1, user3, user4 获取帖子。
//Get datasnapshot at your "users" root node
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child
("Users").child("following").child(uid);
ref.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//Get map of users in datasnapshot
collectDispayNames((Map<String, Object>) dataSnapshot.getValue());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
//handle databaseError
}
});
private void collectDispayNames(Map<String, Object> users) {
displayNames = new ArrayList<>();
//iterate through each following, ignoring their UID
for (Map.Entry<String, Object> entry : users.entrySet()) {
//Get user map
Map singleUser = (Map) entry.getValue();
//Get following_id field and append to list
displayNames.add((String) singleUser.get("who_i_follow"));
//Toast.makeText(this, displayNames.toString(), Toast.LENGTH_LONG).show();
int size = displayNames.size();
if (size > 0){
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents").orderByChild("user_id").equalTo(displayNames.get(1));
}else {
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents");
}
if (size >1){
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents").orderByChild("user_id").equalTo(displayNames.get(1));
}else {
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents");
}
}
}
现在假设我检索user2 关注的所有用户到名为showOwnerId 的数组中
我可以得到 user2 关注者的数组,但是由于它有很多人关注,如何将它关注的所有用户 id 插入到这样的数据库查询中
mDatabase = FirebaseDatabase.getInstance().getReference().child("Post").child("Blog")
.child("Contents").orderByChild("user_id").equalTo(displayNames.get(1));
【问题讨论】:
标签: java firebase firebase-realtime-database android-recyclerview