【问题标题】:Firebase: How to get parent of parent node?Firebase:如何获取父节点的父节点?
【发布时间】:2019-05-09 16:40:45
【问题描述】:

我有节点,我正在尝试获取节点父节点。

我正在尝试获取黑线数据。

Query query = FirebaseDatabase.getInstance().getReference(Params.GENRESCOMMENTS).child(video.getGenre())
            .child(video.getVideoID());
    Log.d(TAG,"Query: " + query.toString());
    options = new FirebaseRecyclerOptions.Builder<Comment>().setQuery(query,Comment.class).build();

    adapter = new FirebaseRecyclerAdapter<Comment,CommentsSingleVideoView>(options) {

        @Override
        public CommentsSingleVideoView onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.comment_item,parent,false);
            return new CommentsSingleVideoView(view);
        }

        @Override
        protected void onBindViewHolder(CommentsSingleVideoView holder, int position, final Comment model) {
            Log.d(TAG,"Model: " + model.toString());
            final String videoID = (String) this.getSnapshots().getSnapshot(position).getKey();
            Log.d(TAG,"Video ID: " + videoID);
            final String userCommentUID = model.getUserCommentUID();
            holder.tvUserName.setText(model.getUserName());
            holder.tvComment.setText(model.getComment());
            holder.tvDate.setText(model.getUploadDate());

这行代码final String videoID = (String) this.getSnapshots().getSnapshot(position).getKey(); 只给了我红线。 我需要获取黑线数据。 我该怎么办?

【问题讨论】:

  • 你试过答案了吗?

标签: android firebase firebase-realtime-database firebaseui


【解决方案1】:

要获取父节点,请在onBindViewHolder 中尝试以下操作:

 String videoID = this.getRef(position).getKey();

getRef(position) 将返回引用的源位置,getKey() 将检索节点。

firebaseui 文档中的代码:

@NonNull
@Override
public DatabaseReference  getRef(int position) {
    return mSnapshots.getSnapshot(position).getRef();
}

https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseRecyclerAdapter.java#L113

【讨论】:

  • 抱歉耽搁了。但你的建议不是我寻求的答案。我需要在黑线上获取数据。你的代码给我带来了红线中的数据。
  • 你好,这是黑线上的数据child(video.getVideoID())
  • 我应该在哪里写?
  • 在这里的评论中,我只是在问 child.getVideoID 它给了你什么?
  • 它给了我红框中的父项
猜你喜欢
  • 2022-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 1970-01-01
相关资源
最近更新 更多