Получить конкретные узлы с помощью поиска в Firebase - PullRequest
0 голосов
/ 17 апреля 2020

Как мне получить конкретный узел из Firebase и добавить его в ArrayList? Я использую ключи карты в качестве имен узлов Firebase root, чтобы найти конкретные узлы.

Я написал код как:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference().child("Users");
        rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
            public void onDataChange(DataSnapshot dataSnapshot) {
                for(Map.Entry<String, String> singleContact: contacts.entrySet()) {
                    if (dataSnapshot.hasChild(singleContact.getKey())) {
                        Log.i("app", "Present: " + singleContact.getKey());
                        userModelObjects.add(dataSnapshot.getValue(FirebaseUserModel.class)); // added into ArrayList of type FirebaseUserModel
                    }
                    else {
                        Log.i("app", "Absent: " + singleContact.getKey());
                        userModelObjects.add(dataSnapshot.getValue(FirebaseUserModel.class));
                    }
                }
            }

            public void onCancelled(DatabaseError databaseError) {
                Log.i("app","failed to connect: "+databaseError.getMessage());
            }
        });

Код выдает предупреждение как

W / ClassMapper: для класса com.demo.example.Firebase.FirebaseUserModel не найдено установщика / поля для 12345

Мой FirebaseUserModel. java класс

public class FirebaseUserModel {

    private String fname,lname,gender;
    private int isInstalled,day,month,year;

    public FirebaseUserModel() { }

    public FirebaseUserModel(String fname,String lname,String gender,int isInstalled,int day,int month,int year)
    {

        this.fname=fname;
        this.lname=lname;
        this.gender=gender;
        this.isInstalled=isInstalled;
        this.day=day;
        this.month=month;
        this.year=year;
    }
}

Структура Firebase

-Users
    -12345
                -fname:"abc"
                -lname:"xyz"
                -gender:"male"
                -isInstalled:1
                -day:1
                -month:2
                -year:1996

Проблема: Мой узел Firebase не добавлен в ArrayList. Предупреждение выдается как показано выше

1 Ответ

0 голосов
/ 17 апреля 2020

Как гласит ошибка:

W / ClassMapper: в классе com.demo.example.Firebase.FirebaseUserModel не найдено установщика / поля для 12345

Вам нужно добавить геттеры и сеттеры для переменных вашего экземпляра, чтобы иметь возможность сопоставить объект с результатом firebase

...