使用子级内的字段从firebase数据库中检索帖子

时间:2019-03-06 04:59:12

标签: android firebase firebase-realtime-database firebase-storage

project tree image in this link

我正在开发社交媒体应用

在Firebase数据库中, 将有“用户”节点,“帖子”节点,“喜欢”节点和“请求类型”节点

Users节点包含代表用户详细信息的字段,并且具有一个类似于键的uid

在posts节点下,其中将包含一个postskey,其中将包含uid,profileimage,postimage,描述,日期,时间,全名等帖子的详细信息 posts节点中的uid是Users节点中的uid

我已成功将图像上传到Firebase存储中,其网址将位于子节点的postimage字段中

要检索特定用户的帖子并将其显示在特定用户的个人资料中,我尝试了以下包含在图片中的代码

但是该用户的帖子未显示,并且仅显示空白活动

您能指导我达到预期的结果吗 我英语不好 抱歉,如果您因为我的英语不好而无法理解我的问题

在OnCreate中,

mAuth=FirebaseAuth.getInstance();
currentUserID=mAuth.getCurrentUser().getUid();
PostsRef=FirebaseDatabase.getInstance().getReference().child("Posts");
myPostsList=(RecyclerView)findViewById(R.id.my_all_posts_list);
myPostsList.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
linearLayoutManager.setReverseLayout(true);
linearLayoutManager.setStackFromEnd(true);
myPostsList.setLayoutManager(linearLayoutManager);
DisplayMyAllPosts();

在Displaymyallposts方法之内

private void DisplayMyAllPosts() {
    Query myPostsQuery=PostsRef.orderByChild("uid").startAt(currentUserID).endAt(currentUserID+"\uf8ff");
    FirebaseRecyclerOptions<Posts> options=new FirebaseRecyclerOptions.Builder<Posts>().setQuery(myPostsQuery,Posts.class).build();
    FirebaseRecyclerAdapter<Posts,MyPostsViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Posts, MyPostsViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull MyPostsViewHolder holder, int position, @NonNull Posts model) {
            holder.fullname.setText(model.getFullname());
            holder.date.setText(model.getDate());
            holder.time.setText(model.getTime());
            holder.description.setText(model.getDescription());
            Picasso.get().load(model.getProfileimage()).into(holder.profileimage);
            Picasso.get().load(model.getPostimage()).into(holder.postImage);
        }

        @NonNull
        @Override
        public MyPostsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            View view=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.all_posts_layout,viewGroup,false);
            MyPostsViewHolder viewHolder=new MyPostsViewHolder(view);
            return viewHolder;
        }
    };
   myPostsList.setAdapter(firebaseRecyclerAdapter);
}

public static class MyPostsViewHolder extends RecyclerView.ViewHolder{
    TextView fullname,date,time,description;
    CircleImageView profileimage;
    ImageView postImage;
    public MyPostsViewHolder(@NonNull View itemView) {
        super(itemView);

        fullname=itemView.findViewById(R.id.post_user_name);
        date=itemView.findViewById(R.id.post_date);
        time=itemView.findViewById(R.id.post_time);
        description=itemView.findViewById(R.id.post_description);
        profileimage=itemView.findViewById(R.id.post_profile_image);
        postImage=itemView.findViewById(R.id.post_image);
    }
}

1 个答案:

答案 0 :(得分:0)

帖子被检索 是因为我愚蠢的错误 我忘了开始听 这就是无法检索帖子的原因 但是还有另一个问题 除图像外,其他所有字段均显示 但不是形象 图片仍然空白