На самом деле ваш код выше не будет работать с orderByChild()
, как это.Если в вашем узле foods
есть несколько элементов с родительскими узлами 0
, 1
и т. Д., И вы хотите проверить их productId
, то только это можно сделать.
Для этого вам нужно сделать родительского потомка foods
и вызвать на нем orderByChild()
для productId
.Код будет выглядеть примерно так:
final DatabaseReference tokens = FirebaseDatabase.getInstance().getReference("Requests").child(id).child("foods");
tokens.orderByChild("productId").equalTo("02").addSingleValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// do what you want
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Do something for errors, don't ignore
}
Однако, если у вас есть структура базы данных с разными родительскими узлами и между ней и еще одним срединным узлом есть еще один медианный узел, то этоне работайте с кодом, подобным приведенному выше.
Подробнее о том, как сделать структуру базы данных подходящей для orderByChild()
, см. здесь.