在部门节点firebase中查询以从每个节点android获取5个项目

时间:2018-10-28 07:56:48

标签: android firebase

Firebase包含一些部门节点和Doctors节点,因此我和具有关键部门ID的部门之间存在关系。每个医生都有部门ID,因此我想在查询中显示每个部门的5个孩子的子孙,我如何使用查询Firebase来为每个部门android获取结果5个孩子的医生。

如何在android中进行查询?

我试图先查询部门 然后在每个部门的ID中进行查询以获取一些医生的孩子 但我认为这会使我的应用变慢

Firebase节点结构:

Here

1 个答案:

答案 0 :(得分:0)

从我对您的问题的理解中,您希望获得具有特定部门ID的5位医生的名单。

您可以使用orderByChild()limitToLast()以及简单的singleValueEventListener()来做到这一点。代码可能看起来像这样:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Doctors");
                    ref.orderByChild("depid").equalTo(2).limitToFirst(5).addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                              for (DataSnapshot child: dataSnapshot.getChildren()) {
                                   String name = dataSnapshot.child("name");
                                   // or do anything else
                              }

                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {

                        }
                    });

此代码将name为2的变量depid中的前5位医生姓名开始。您可以根据自己的未来需求对其进行编辑。

您可以使用不同的depid值来显示来自不同部门的不同医生。