首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不了解孩子的情况下,根据其内在的价值来获得孩子。在实时数据库中

如何在不了解孩子的情况下,根据其内在的价值来获得孩子。在实时数据库中
EN

Stack Overflow用户
提问于 2021-04-24 22:35:58
回答 2查看 41关注 0票数 0

我有一个关于药房帐户的节点,孩子是药房的id,每个孩子都包含药房的名字和id,还有更多的信息。现在我有了药房的名字,想要得到药房的ID,有什么功能可以这样做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-25 00:32:22

您要查找的是数据库查询,它允许您根据属性值筛选节点下的结果。

在这种情况下会是这样的:

代码语言:javascript
运行
复制
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Pharmacies");
Query query = ref.orderByChild("PharmacyName").equalTo("El Ezaby");
query.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DataSnapshot> task) {
        if (!task.isSuccessful()) {
            Log.e("firebase", "Error getting data", task.getException());
        }
        else {
            DataSnapshot result = task.getResult();
            for (DataSnapshot snapshot: result.getChildren()) {
                Log.i("firebase", snapshot.child("PharmacyID").getValue(String.class));
            }
        }
    }
});

result.getChildren()上的循环是必要的,因为查询可以有多个结果。尽管这里可能只有一个结果,但仍然需要循环。

票数 0
EN

Stack Overflow用户

发布于 2021-04-25 01:29:05

我使用了上面的代码,但是在query.get上出现了一个错误

下面的代码和我一起工作

代码语言:javascript
运行
复制
 DatabaseReference databaseReference1=FirebaseDatabase.getInstance().getReference("Pharmacies");
     databaseReference1.addValueEventListener(new ValueEventListener() {
         @Override
         public void onDataChange(@NonNull DataSnapshot snapshot) {
           for(DataSnapshot dataSnapshot:snapshot.getChildren()){
               Pharmacies pharmacies=dataSnapshot.getValue(Pharmacies.class);
               if(pharmacies!=null){
                   if(pharmacyName.contains(pharmacies.getPharmacyName())){
                        Log.e("firebase", dataSnapshot.child("PharmacyID").getValue(String.class));
                        pharmacyid=dataSnapshot.child("PharmacyID").getValue(String.class);

                   }
               }
           }
         }

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

         }
     });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67248059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档