【问题标题】:Retrieve posts from firebase database using a field within the child使用子项中的字段从 firebase 数据库中检索帖子
【发布时间】:2019-07-27 16:34:59
【问题描述】:

project tree image in this link

我正在开发一个社交媒体应用程序

在 Firebase 数据库中, 会有用户节点、帖子节点、点赞节点和请求类型节点

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

在帖子节点下,会有一个postskey,里面会有帖子的详细信息,如uid、profileimage、postimage、description、date、time、fullname post节点中的uid就是Users节点中的uid

我已成功将图片上传到 firebase 存储,其 url 将位于子节点内的 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);
    }
}

【问题讨论】:

  • 发布您的代码,而不是作为图片发布。
  • 发布您的代码和您的 Firebase 数据库格式。
  • 现在我在链接中添加了数据库树
  • 你开始监听变化了吗?
  • 我创建了一个单独的模块类,称为。 Posts.java 使用 getter 和 setter 初始化以获取和设置数据库值

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


【解决方案1】:

帖子已检索 这是因为我的愚蠢错误 我忘了给吃惊 这就是无法检索帖子的原因 但是还有一个问题 除了图像,所有其他字段都显示 但不是图像 图片还是空白

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多