Firebase包含一些部门节点和Doctors节点,因此我和具有关键部门ID的部门之间存在关系。每个医生都有部门ID,因此我想在查询中显示每个部门的5个孩子的子孙,我如何使用查询Firebase来为每个部门android获取结果5个孩子的医生。
如何在android中进行查询?
我试图先查询部门 然后在每个部门的ID中进行查询以获取一些医生的孩子 但我认为这会使我的应用变慢
Firebase节点结构:
答案 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
值来显示来自不同部门的不同医生。