【发布时间】: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