Android Firebase - как получить данные дочернего узла - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть узел "genresComments", который сохраняет комментарии каждого пользователя для каждого идентификатора видео.Это выглядит так: Жанр -> идентификатор видео -> идентификатор пользователя: данные.Я пытаюсь получить все идентификаторы пользователя и их данные (данные, которые я имею в виду: comment, profilePicture, username).

, то есть запрос, который должен указывать на эти данные

      Query query = FirebaseDatabase.getInstance().getReference(Params.GENRESCOMMENTS).child(genre).child(videoID);

Но я уверен, что он указывает только на «идентификатор пользователя», а не приносит мне необходимые мне внутренние данные.

Мой вопрос: как мне получить идентификатор каждого видео?"все его" идентификатор пользователя "и его данные (комментарий, profilePicture, имя пользователя).

РЕДАКТИРОВАТЬ

     @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()));
    }

}

Я использую этот запрос для представления переработчика

enter image description here

1 Ответ

0 голосов
/ 18 сентября 2018

Сделайте, как показано ниже (возможно, ошибки): сначала узнайте о слушателе событий

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


}
...