В приведенном выше фрагменте мы используем getChildren() для получения Iterable ваших сообщений. Затем мы используем child("name") для получения каждого конкретного дочернего свойства.
Второй подход заключается в использовании встроенного сериализатора / десериализатора JSON-to-POJO. Когда вы отправляете список сообщений, Message объекты внутри него сериализуются в JSON и сохраняются в Firebase.
Чтобы снова извлечь их из него, вам нужно выполнить обратное:
Во втором фрагменте мы все еще используем getChildren() для получения сообщений, но теперь мы десериализуем их из JSON обратно в Message объект.
Для получения простого примера приложения, использующего последний подход, взгляните на пример Firebase в AndroidChat. Также показано, как эффективно работать со списком сообщений (подсказка: FirebaseListAdapter).
Ответ 2
Итак, если вы хотите получать сообщения, вы можете сделать следующее:
for (DataSnapshot child : dataSnapshot.getChildren()){ //child is each element in the finished list Map<String, Object> message = (Map<String, Object>)child.getValue(); Messagemsg=newMessage((String) message.getValue().get("message"), (String) message.get("name")); }
Ответ 3
Повторяем значения DataSnapshot и получаем дочерние элементы, используя вложенный цикл for для повторения дочерних элементов дочерних элементов и получения требуемого значения...
for (DataSnapshot child : dataSnapshot.getChildren()) { for (DataSnapshot single : child.getChildren()) { Map<String, Object> map = (Map<String, Object>) single.getValue(); Stringa= (String) map.get("message"); Stringb= (String) map.get("name"); textView.append(b + " -- " + a + "\n"); } }
Ответ 4
Используйте этот код, если вы хотите преобразовать объект firebase в json с помощью библиотеки Gson :