答案 0 :(得分:1)
您的数据库结构从顶部节点不支持orderByChild()
。因此,您必须将数据库引用设置到节点food
,然后才能使用orderByChild()
查询来查找具有特定stallID
的子项。
这在代码中看起来像这样:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Requests").child("1542..").child("foods");
ref.orderByChild("stallID").equalTo(stallIDYouWant).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()){
// do here what you wanted
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
// ToDo: don't ignore this, do something for errors
}
)};
这实际上对您没有多大帮助,因为您必须为数据库结构中的每个唯一ID进行设置。
因此,在这里要做的更好的事情是使您的数据库结构与众不同。要了解更多有关如何使您的结构适合此操作的信息,请参阅this answer.