首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何查找Firebase中是否存在其字段中具有特定值的子项?

如何查找Firebase中是否存在其字段中具有特定值的子项?
EN

Stack Overflow用户
提问于 2018-02-27 19:48:19
回答 4查看 454关注 0票数 -3

我需要找出在Firebase中是否存在其字段中具有特定值的子项。

下面是我的数据库结构:

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-02-27 19:58:11

在您的例子中,您可以像这样设置查询:

代码语言:javascript
复制
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();

        Query query = reference.orderByChild("chat_id").equalTo("CHAT_ID_To_COMPARE");

        query.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {

                    for (DataSnapshot issue : dataSnapshot.getChildren()) {
                        // do something with the individual object
                    }
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

这将在服务器端过滤数据,而不需要在应用程序端过滤数据。

票数 0
EN

Stack Overflow用户

发布于 2018-02-27 19:53:03

要检查字段是否存在,可以执行以下操作:

代码语言:javascript
复制
  DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("bdxhATalcDRJCiZZcUFUJo3yrJF2");
  ref.addValueEventListener(new ValueEventListener(){
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
   if(dataSnapshot.exists()){
        //then it exists
  }

  @Override
  public void onCancelled(FirebaseError firebaseError) {


 }
 });

这将检查数据库中是否存在child("bdxhATalcDRJCiZZcUFUJo3yrJF2")

如果您这样做:

代码语言:javascript
复制
ref=FirebaseDatabase.getInstance().getReference().child("bdxhATalcDRJCiZZcUFUJo3yrJF2").orderByChild("chat_id").equalTo(chatid);

然后,它将检查该子项是否也存在于数据库中

票数 1
EN

Stack Overflow用户

发布于 2018-02-27 19:55:00

代码语言:javascript
复制
postRef = FirebaseDatabase.getInstance().getReference().child("bdxhATalcDRJCiZZcUFUJo3yrJF2");

    postRef.orderByChild("chat_id").equalTo(chat_id)
        .addListenerForSingleValueEvent(new ValueEventListener() {

           @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if(dataSnapshot.exists()){
                   //bus number exists in Database
            } else {
                //bus number doesn't exists.
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

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

https://stackoverflow.com/questions/49007971

复制
相关文章

相似问题

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