пройти через уникальный идентификатор, чтобы получить детей - PullRequest
0 голосов
/ 14 ноября 2018

Если мое дерево выглядит так:

{
unique_id_1: {
    message: "hello"
    }
unique_id_2: {
    message: "hi there"
    }
}

Как получить все сообщения, являющиеся потомками каждого уникального идентификатора, если я не знаю уникальный идентификатор пользователя?Или я должен построить свою базу данных так, чтобы сообщение могло быть только прямым потомком уникального идентификатора и затем проходить следующим образом:

DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference reference = database.child("message");

Или это не сработало бы?

1 Ответ

0 голосов
/ 14 ноября 2018

Чтобы получить все сообщения, вам нужно выполнить цикл:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

ref.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
  for(DataSnapshot datas: dataSnapshot.getChildren()){
     String messages = datas.child("message").getValue().toString();
     }
 }
@Override
public void onCancelled(DatabaseError databaseError) {
     }
});

Здесь datasnapshot находится в корневом узле, тогда, если у вас есть уникальные идентификаторы и у вас нет значений, вы можете просто зациклить внутриэти уникальные идентификаторы dataSnapshot.getChildren() и получать сообщения.

Вы также можете получить уникальные идентификаторы, выполнив String key = datas.getKey();

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