Как получить значение из ключа в боковой ключ в базе данных Firebase? - PullRequest
0 голосов
/ 11 октября 2019

Я храню данные, используя класс модели в проекте Firebase. Пожалуйста, помогите мне, как я могу получить данные из ключа внутри ключа.

Check screenshot

Проверить скриншот дерева данных.

1 Ответ

0 голосов
/ 11 октября 2019

Я не знаю, зачем вам это делать, но я бы так и подошел. По сути, я добавляю valueEventListener в мой объект FirebaseDatabase, затем я получаю ключ, который в этом случае будет означать первый уровень.

Добавьте еще одну ссылку FirebaseDatabase с ключом из первой ссылки в качестве дочернего, это позволит вам получить доступ к ключу второго уровня. Оттуда вы можете пойти дальше и получить доступ к данным, как при обычном прослушивателе событий.

По сути, если вы вызовете функцию getData из valueEventListener ссылки на classesDatabase и передадите снимок данных, вы получите доступ к данным второго уровня.

classesDatabase = FirebaseDatabase.getInstance().getReference().child("classes");

private void getData(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
    String key1 = ds.getKey();
    DatabaseReference dbReference = classesDatabase.child(key1);
        dbReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot2) {
            for (DataSnapshot ds2 : dataSnapshot2.getChildren()) {
            String key2 = ds2.getKey();
            Classes classOne = ds2.child(key2).getValue(Classes.class);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.i(getClass().getName().toString(), ": " + databaseError.getMessage());
        }
    });
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...