android - Android Firebase - 如何获取子节点数据
问题描述
我有“genresComments”节点,可将每个用户的评论保存到每个视频 ID。它就像流派 -> 视频 ID -> 用户 ID:数据。我想要得到的是所有用户的 id 和他们的数据(我的意思是数据:评论、profilePicture、用户名)。
那就是应该指向该数据的查询
Query query = FirebaseDatabase.getInstance().getReference(Params.GENRESCOMMENTS).child(genre).child(videoID);
但我确信它只指向“用户 ID”,而不是我需要的内部数据。
我的问题是我如何为每个“视频 ID”获取他的所有“用户 ID”和他的数据(评论、个人资料图片、用户名)。
编辑
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
videoID = getArguments().getString(Params.VIDEOID);
genre = getArguments().getString(Params.GENRE);
progressBar.setVisibility(View.VISIBLE);
if(videoID != null){
Query query = FirebaseDatabase.getInstance().getReference(Params.GENRESCOMMENTS).child(genre).child(videoID);
options = new FirebaseRecyclerOptions.Builder<Comment>().setQuery(query,Comment.class).build();
adapter = new FirebaseRecyclerAdapter<Comment,CommentsViewHolder>(options) {
@Override
protected void onBindViewHolder(CommentsViewHolder holder, int position, Comment model) {
holder.userName.setText(model.getUserName());
holder.comment.setText(model.getComment());
Glide.with(getContext()).load(model.getUserProfile()).into(holder.userProfile);
}
@Override
public CommentsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.comment_item,parent,false);
return new CommentsViewHolder(view) ;
}
};
}
if(adapter != null) {
rvComments.setAdapter(adapter);
rvComments.setLayoutManager(new LinearLayoutManager(getContext()));
}
}
我将此查询用于回收站视图
解决方案
像下面的代码一样(可能会出错):先了解事件监听器
FirebaseDatabase.getInstance().getReference(Params.GENRESCOMMENTS).child(genre).child(videoID).addValueEventListener(new ValueEventListener(Datasnapshot snap){
for(DataSnapshot s:snap.getChildren()){
Comment c=s.getValue(Comment.class);
//c.getPRofilePic c.getComment();
}
});
class Comment {
private String comment;
private String profilePic;
private String username;
//getter setter
}
推荐阅读
- ios - 将多个 replaceOccurrences() 与 Swift 结合使用
- nginx - NGINX 无法将流量传递给应用程序
- mongodb - Mongodb命令出错时如何终止批处理文件?
- python - 使用 Pycairo 将 SVG 转换为 PDf
- angular - 角度 agrid API 引用同一页面上的不同网格
- r - R blogdown:在 gh-pages 上使用 github 操作部署
- mysql - 如何使用mysql只显示最新的客户订单
- blazor - MatBlazor - MatNavMenu 中向下箭头的位置不正确
- github-actions - GitHub 操作中是否有可用的跨存储库访问令牌?
- javascript - 有没有办法在 JavaScript 中返回字符串中字符的频率?