Firebase: как получить родительский узел родительского узла? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть узел, и я пытаюсь получить родительский узел.

enter image description here

Я пытаюсь получить данные черной линии.

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(); дает мне только красную линию. Мне нужно получить данные черной линии. Что мне делать?

1 Ответ

0 голосов
/ 09 мая 2019

Чтобы получить родительский узел, попробуйте следующее внутри 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

...