Данные Firebase не отображаются - PullRequest
0 голосов
/ 18 февраля 2020

Я получил данные из Firebase относительно имени и оценки. Я могу видеть представление списка для имени и оценок полученных данных, но для вторых полученных данных я не вижу никаких оценок или имен. После отладки приложения я получил «com.example.gymtasti c .SquatScore (поля / установщики чувствительны к регистру!)».

private ListView listView, listview2;
DatabaseReference databaseReference;
DatabaseReference ddatabase;
private FirebaseDatabase firebaseDatabase;
List<ScoreProfile> scoreList;
List<SquatScore> squatList;


@Override
protected void onStart() {
     super.onStart();
      ddatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for(DataSnapshot squatsnapshot : dataSnapshot.getChildren()){

                    SquatScore squatScore = squatsnapshot.getValue(SquatScore.class);
                    squatList.add(squatScore);
                }
                SquatInfoAddapter squatInfoAddapter =new SquatInfoAddapter(RankT.this, squatList);
                listview2.setAdapter(squatInfoAddapter);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
               throw databaseError.toException();
            }
        }); // This one doesnt

    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rank_t);


        firebaseDatabase = FirebaseDatabase.getInstance();

        databaseReference = firebaseDatabase.getReference("Bench");

        ddatabase = firebaseDatabase.getReference("Squat");

        databaseReference.orderByChild("userScore").limitToFirst(5);
        ddatabase.orderByChild("userScore").limitToFirst(5);

        squatList = new ArrayList<>();

        scoreList = new ArrayList<>();

        firebaseAuth = FirebaseAuth.getInstance();

Это мой код. Прослушиватель первого значения отображается, но для второго созданного, он просто показывает пустые представления списка.

Это мои данные Firebase, которые я получаю, но не показывает.

 "Squat" : {
    "Jn8SOKDgGRMewEHjVG8LaXoYtrl2" : {
      "suserName" : "ace",
      "suserScore" : "369"
    },
    "mooFelp2soMtDmRlg5IQ6AYpKhO2" : {
      "suserName" : "ACe",
      "suserScore" : "1222"
    }

Вот мой класс SquatScore:

public class SquatScore {

    private String SuserName;
    private String SuserScore;
    public SquatScore(){};

    public SquatScore(String suserName, String suserScore) {
        SuserName = suserName;
        SuserScore = suserScore;
    }


    public String getSuserName() {
        return SuserName;
    }

    public String getSuserScore() {
        return SuserScore;
    }
}

1 Ответ

1 голос
/ 20 февраля 2020

Получаемая ошибка:

W / ClassMapper: в классе com.example.gymtasti c .SquatScore (регистры / регистры чувствительны к регистру! Не найдено сеттера / поля для suserName). "

Если мы посмотрим на ваш класс, это правильно:

  • нет поля suserName, только SuserName с заглавной буквы S.
  • не существует метода установки для свойства с именем userName, которое будет называться setSusername.

Без них Firebase SDK не может знать, как установить значение от свойства suserName в JSON до вашего SquatScore объекта.

Чтобы исправить это, вы можете либо переименовать поле в suserName, либо создать метод установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...