java - 我应该如何在只有特定用户 ID 的回收站视图中查询帖子?
问题描述
我正在尝试使用 Firebase UI recyclerview 来显示特定用户的一系列帖子。我有一个名为 all_user_posts 的节点,其中包含每个帖子的密钥。有没有办法在键值对子项中显示仅具有特定用户 ID 的帖子?如果有人有任何想法,将不胜感激
我正在使用带有 Firebase 实时数据库最新依赖项的 Android Studio 3.2。对于同一项目中的其他 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();
}
解决方案
由于您userId
在数据库中使用,那么您可以执行以下操作:
FirebaseUser user = FirebaseUser.getInstance().getCurrentUser()
Query postQuery = postReference.orderByKey().equalTo(user.getUid());
这将只检索与userId
推荐阅读
- python-3.x - 如何在 Spacy 中使用神经核函数
- angular - Angular PrimeNG如何通过单击输入字段而不是按钮来获取选项列表?
- typescript - 打字稿对数字类型的每个对象的键应用算术运算
- python - 归一化图像返回 --->OverflowError: cannot convert float infinity to integer
- r - 有没有办法指定轴的上限范围?
- javascript - ActiveRecord::RecordNotFound(找不到“id”=未定义的视频):
- swift - 后退按钮链接显示带有 @IBAction 文本的错误
- ghostscript - Ghostscript 转换为 pdfA
- go - Olivere v5 到 Olivere v6:AutoGeneratePhraseQueries 等效
- java - 为什么这个Key动态逻辑问题得到证明,肯定将2147483647的java int增加1应该是-2147483648?