Получение данных Firebase со случайными ключами - PullRequest
0 голосов
/ 13 июня 2018

У меня есть структура данных firebase для моего приложения для Android, и я хочу получить данные из случайных ключей, сгенерированных методом push (), который является дочерним элементом узла Forum, который является дочерним элементом корня базы данных.Пожалуйста, предложите мне способ сделать это.Спасибо.

data structure

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

сначала вы должны написать свою модель класса "FormusModel" для хранения данных с сервера, вы можете использовать это

  >   > 

rootRef.child("Forums").addChildEventListener(new
    > ChildEventListener() {
    >     >                 @Override
    >     >                 public void onChildAdded(DataSnapshot dataSnapshot, String s) {
    >     >                     ForumsModel model = dataSnapshot.getValue(FormusModel.class);
//now you can use model.getname();.... 
    >     }

Примечание: вы должны реализовать другоеметод как onChildCahnge слушатель

0 голосов
/ 13 июня 2018

Чтобы отобразить значения всех дочерних элементов в узле Forums, используйте следующий код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference forumsRef = rootRef.child("Forums");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String name = ds.child("name").getValue(String.class);
            String ques = ds.child("ques").getValue(String.class);
            String title = ds.child("title").getValue(String.class);
            String uid = ds.child("uid").getValue(String.class);
            Log.d("TAG", name + " / " + ques + " / " + title + " / " + uid);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
forumsRef.addListenerForSingleValueEvent(valueEventListener);
0 голосов
/ 13 июня 2018

Вы можете получить все дочерние узлы родительского узла "Форум".Просто используйте метод getChildren ().Затем просто случайным образом выберите один из дочерних узлов по индексу позиции.

DataSnapshot snapshot = dataSnapshot.child("Forums");
Iterable<DataSnapshot> children = snapshot.getChildren();

for (DataSnapshot child: children) {
        Object obj = child.getValue(Object.class);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...