Android Firebase仅获取以下用户的帖子
我想在下面显示用户someone id的帖子。 我正在使用FirebaseRecyclerAdapter获取帖子 我的数据库id结构如下所示是jsonAndroid Firebase仅获取以下用户的帖子,android,firebase,firebase-realtime-database,firebase-authentication,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我想在下面显示用户someone id的帖子。 我正在使用FirebaseRecyclerAdapter获取帖子 我的数据库id结构如下所示是json "Allposts" : { "-LnDkoPgr0fPAUSnackF" : { "author" : "jack", "postimage" : "posturl", "profile" : "profileurl", "uid" : "8WZ6jPIvVuNUEjR1G1ewEPpr2Ln2" }, "-Lnll3vNF8
"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) {
}
});
}
}
仅显示uid 3的post,未显示uid 1和2的post
如何显示以下节点下所有用户的帖子?您需要获取
mRecyclerView.setAdapter(mAdapter)编码>从for循环中取出,并将其放置在for循环结束后
希望它能有所帮助。您本身不需要datasnapshot
。这应该可以正常工作,因为您使用的是FirebaseRecyclerAdapter
:
mFollowing = FirebaseDatabase.getInstance().getReference().child("Users").child(currentUser).child("following");
mDatabase = FirebaseDatabase.getInstance().getReference().child("UsersPost");
protected void onStart() {
super.onStart();
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);
}
}
}
mfollow=FirebaseDatabase.getInstance().getReference().child(“用户”).child(“当前用户”).child(“以下”);
mDatabase=FirebaseDatabase.getInstance().getReference().child(“UsersPost”);
受保护的void onStart(){
super.onStart();
DatabaseReference ref=mDatabase.child(在.getKey()之后);
mAdapter=新的FirebaseRecyclerAdapter(Post.class,
R.布局.后视图项目,后视图支架.类别,参考){
@凌驾
受保护的void populateViewHolder(PostViewHolder、Post模型、int位置){
viewHolder.bindToPost(模型);
}
};
mRecyclerView.setAdapter(mAdapter);
}
}
}
任何人请给出答案…我做了,但仍然没有工作你有任何其他想法来获得用户跟踪的唯一帖子吗?没有任何开发人员的回答?这是一个没有任何专家回答的问题,请尝试获取这一行databaseref=mDatabase.child(following.getKey())代码>也从for循环中退出。我们如何才能做到这一点?我认为它在外循环中是不可访问的
mFollowing = FirebaseDatabase.getInstance().getReference().child("Users").child(currentUser).child("following");
mDatabase = FirebaseDatabase.getInstance().getReference().child("UsersPost");
protected void onStart() {
super.onStart();
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);
}
}
}