Firebase не получает все данные все время - PullRequest
0 голосов
/ 17 февраля 2019

Код

У меня есть следующий код для заполнения ViewHolder

@Override
            protected void populateViewHolder(RankingViewHolder viewHolder, final Ranking model, int position) {
                final Context mContext = getActivity().getApplicationContext();

                viewHolder.txt_name.setText(model.getUserName());
                viewHolder.txt_score.setText(String.valueOf(model.getScore()));
                viewHolder.txt_class.setText(model.getUser_class());
                Picasso.with(mContext).load(model.getAvatarUrl()).error(R.drawable.ic_people_black_24dp).into(viewHolder.personPhoto);


                viewHolder.setItemClickListener(new ItemClickListener() {
                    @Override
                    public void onClick(View view, int position, boolean isLongClick) {
                        Intent scoreDetail = new Intent(getActivity(), ScoreDetail.class);
                        scoreDetail.putExtra("viewUser", model.getUserName());
                        startActivity(scoreDetail);

                    }
                });

            }
        };

Код RankingViewHolder:

public class RankingViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    private ItemClickListener itemClickListener;

    public TextView txt_name, txt_score, txt_class;

    public ImageView personPhoto;

    public RankingViewHolder(View itemView) {
        super(itemView);
        txt_name = itemView.findViewById(R.id.txt_name);
        txt_score = itemView.findViewById(R.id.txt_score);
        personPhoto = itemView.findViewById(R.id.person_photo);
        txt_class = itemView.findViewById(R.id.txt_class);
        itemView.setOnClickListener(this);
    }

    public void setItemClickListener(ItemClickListener itemClickListener) {
        this.itemClickListener = itemClickListener;
    }

    @Override
    public void onClick(View view) {
        itemClickListener.onClick(view , getAdapterPosition(),false);

    }
}

Проблема:

Код работает нормально, НО по какой-то причине иногда я получаю все данные, иногда нет изображения или нет class_text.Данные поступают из firebase, так как мой код работает, я думаю, это как-то связано с Firebase.

Есть ли способ получить все данные, которые мне нужны?Если требуется дополнительный код, пожалуйста, спросите, но если была проблема с кодом, он не должен работать вообще.enter image description here

Дополнительная информация по запросу

Модель ранжирования

public class Ranking {

    private String userName;
    private long score;
    private String avatarUrl;
    private String user_class;

    public Ranking(String userName, long score, String avatarUrl, String user_class) {
        this.userName = userName;
        this.score = score;
        this.avatarUrl = avatarUrl;
        this.user_class = user_class;
    }

    public Ranking() {

    }

    public Ranking(String userName, long score) {
        this.userName = userName;
        this.score = score;
    }

    public Ranking(String userName, long score, String avatarUrl) {
        this.userName = userName;
        this.score = score;
        this.avatarUrl = avatarUrl;
    }

    public String getUser_class() {
        return user_class;
    }

    public void setUser_class(String user_class) {
        this.user_class = user_class;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public long getScore() {
        return score;
    }

    public void setScore(long score) {
        this.score = score;
    }

    public String getAvatarUrl() {
        return avatarUrl;
    }

    public void setAvatarUrl(String avatarUrl) {
        this.avatarUrl = avatarUrl;
    }
}

Структура базы огня:

"anny" : {
      "avatar" : "https://i.imgur.com/5dwlAI2.png",
      "avatarUrl" : "https://i.imgur.com/5dwlAI2.png",
      "score" : 470,
      "userName" : "anny",
      "user_class" : "Geography"
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...