Android Firebase如何在2个随机键下检索子数据

时间:2018-11-24 07:48:08

标签: android firebase firebase-realtime-database

仅当stallID = 1时,如何在recyclerview上显示RequestsID? 我的DatabaseReference应该如何?

enter image description here

更新:

enter image description here

enter image description here

1 个答案:

答案 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.