我正在尝试使用Firebase UI recyclerview显示特定用户的一系列帖子。我有一个名为all_user_posts的节点,其中包含每个帖子的键。有没有办法在键值对子项中仅显示具有特定用户ID的帖子?如果有人有任何想法,将不胜感激
我正在将Android Studio 3.2与Firebase实时数据库的最新依赖关系一起使用。对于同一项目中的其他recyclerviews,我使用以下方式显示了所有帖子:
DatabaseReference postReference = FirebaseDatabase.getInstance().getReference().child("all_user_posts");
Query postQuery = postReference.orderByKey();
但是有办法只显示在postKey上附加了特定用户ID的帖子吗?
private void displayAllPosts() {
Query postQuery = postReference.orderByKey();
FirebaseRecyclerOptions firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder<Posts>().setQuery(postQuery, Posts.class).build();
FirebaseRecyclerAdapter<Posts, PostViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Posts, PostViewHolder>(firebaseRecyclerOptions) {
@Override
protected void onBindViewHolder(@NonNull final PostViewHolder holder, final int position, @NonNull Posts model) {
//post key in 'all_user_posts' node
final String PostKey = getRef(position).getKey();
}
@NonNull
@Override
public PostViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(mContext).inflate(R.layout.layout_post, viewGroup, false);
return new PostViewHolder(view);
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.startListening();
}
答案 0 :(得分:0)
由于您在数据库中使用userId
,因此可以执行以下操作:
FirebaseUser user = FirebaseUser.getInstance().getCurrentUser()
Query postQuery = postReference.orderByKey().equalTo(user.getUid());
这将仅检索与userId