Данные запроса Firebase

{ "random_key 1" : { "id": 0, "text": "This is text" }, "random_key 2" : { "id": 1, "text": "This is text" } } 

Если я храню свои данные, как это, и я хочу получить узел, где id равен 0 . Как я могу это сделать?

Вышеупомянутый является дочерним элементом issue , который является дочерним элементом root .

В вашем случае вам нужно настроить запрос следующим образом:

  DatabaseReference reference = FirebaseDatabase.getInstance().getReference(); Query query = reference.child("issue").orderByChild("id").equalTo(0); query.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.exists()) { // dataSnapshot is the "issue" node with all children with id 0 for (DataSnapshot issue : dataSnapshot.getChildren()) { // do something with the individual "issues" } } } @Override public void onCancelled(DatabaseError databaseError) { } }); 

@ Ответ Linxy верен, но поскольку вы будете читать список элементов из базы данных, лучше использовать прослушиватель дочерних событий вместо прослушивателя событий значения.

 DatabaseReference reference = FirebaseDatabase.getInstance().getReference(); Query query = reference.child("issue").orderByChild("id").equalTo(0); query.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { //Do something with the individual node here`enter code here` } @Override public void onChildChanged(DataSnapshot dataSnapshot, String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot) { } @Override public void onChildMoved(DataSnapshot dataSnapshot, String s) { } @Override public void onCancelled(FirebaseError firebaseError) { } }); 

Этот код работает для меня

 mFirebaseDatabase.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(final DataSnapshot dataSnapshot) { for (DataSnapshot data : dataSnapshot.getChildren()) { //If email exists then toast shows else store the data on new key if (!data.getValue(User.class).getEmail().equals(email)) { mFirebaseDatabase.child(mFirebaseDatabase.push().getKey()).setValue(new User(name, email)); } else { Toast.makeText(ChatListActivity.this, "E-mail already exists.", Toast.LENGTH_SHORT).show(); } } } @Override public void onCancelled(final DatabaseError databaseError) { } }); 

Для простой в использовании кросс-платформенной интеграции Firebase вы также можете взглянуть на V-Play Engine для мобильных приложений

 FirebaseDatabase { id: firebaseDb Component.onCompleted: { //use query parameter: firebaseDb.getValue("public/bigqueryobject", { orderByKey: true, //order by key before limiting startAt: "c", //return only keys alphabetically after "c" endAt: "m", //return only keys alphabetically before "m" limitToFirst: 5, //return only first 5 sub-keys }) } } 
  • как сделать конкретный текст в TextView BOLD
  • CLI на DalvikVM терпит неудачу в JNI lib
  • Я не могу увидеть элементы FirebaseRecyclerAdapter на моем макете
  • Рисование строки / пути на Картах Google
  • Какова основная цель методов setTag () getTag () View?
  • Как очистить конкретную активность от истории стека?
  • Изменение формы уведомления
  • Скорость выделения шатра
  • Как использовать тему по умолчанию для приложения?
  • Несколько кнопок для Android 2.x
  • Использование AsyncTask
  • Давайте будем гением компьютера.