Как получить данные ребенка, когда они были выдвинуты? - PullRequest
1 голос
/ 21 марта 2019

Я использую функцию «push ()» для хранения объектов в моей базе данных firebase, и, поскольку в ней хранятся данные с уникальными ключами, я не могу изменить значения хранимых объектов, используя то, что упомянуто в документации:

myRef.child("child name").setValue(model);

потому что я просто не знаю ключ. Мне интересно, есть ли другой способ изменить данные базы данных firebase.

Я хочу добавить нового ребенка под названием «разговоры» для пользователей и программно добавить к нему детей.

и это структура базы данных:

enter image description here

1 Ответ

2 голосов
/ 21 марта 2019

Если у вас есть следующая база данных:

 Users
    pushId
        name : john
        age  : 100

Если вы не знаете pushId, вы можете сделать следующее:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Users");
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()){
         String key = ds.getKey();
         String name = ds.child("name").getValue().toString();
     }
}

 @Override
public void onCancelled(DatabaseError databaseError) {
 }
});

Выше вы получите name и ключ, используя getKey()

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