【问题标题】:Firebase android query with more than one "EqualTo"具有多个“EqualTo”的 Firebase android 查询
【发布时间】:2017-07-31 13:35:28
【问题描述】:

这是我的 Firebase 结构:

"Braccianti" : {
        "-KehahFy7z2IrUdchwxk" : {
          "Associazione" : "-KehahFy7z4ngUdchwxk",
          "Cellulare" : "3402659753",
          "Cognome" : "Prova",
          "DataDiNascita" : "12/04/1985",
          "Nome" : "Bracciante"
        },
        "ashaosdfao" : {
          "Associazione" : "gsdfskjdfsdf",
          "Cellulare" : 234235246,
          "Cognome" : "Example",
          "DataDiNascita" : "10/12/2000",
          "Nome" : "exam"
        }
        "dfsdfsdfsdf" : {
          "Associazione" : "ewsvbdtgsdgf",
          "Cellulare" : 23523975553,
          "Cognome" : "Ex",
          "DataDiNascita" : "17/01/1994",
          "Nome" : "ghjghj"
        }
      }

我想通过单个查询获得“dfsdfsdfsdf”和“-KehahFy7z2IrUdchwxk”,所以我想这样做:

 Query QueryAssociazioni = FirebaseDatabase.getInstance().getReference("Aziende/"+main.getNomeAzienda()+"/Associazioni"); 
QueryAssociazioni = QueryAssociazioni.equalTo("dfsdfsdfsdf").equalTo("-KehahFy7z2IrUdchwxk");

但它不起作用。

我该如何解决我的问题?

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    Firebase 不允许多个查询,但您始终可以添加 ChildEventListener 并检查孩子的值:

    QueryAssociazioni.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String child = dataSnapshot.getValue().toString();
            if(child.equals("dfsdfsdfsdf") || child.equals(("-KehahFy7z2IrUdchwxk"))){
                //Do something with the value
            }
        }
    
        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {
    
        }
    
        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {
    
        }
    
        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {
    
        }
    
        @Override
        public void onCancelled(DatabaseError databaseError) {
    
        }
    });
    

    【讨论】:

    • 对他有什么帮助?好的,您可以“过滤”其中哪些是平等的,但我们如何才能删除所有其他人?
    【解决方案2】:
    QueryAssociazioni.child("Braccianti")
    .orderByChild("Associazione") //key name
    .equalTo("Associazione")  //value
    

    试试这个方法... 谢谢。

    【讨论】:

    • 他需要一种方法来过滤多个等于而不是一个。
    猜你喜欢
    • 1970-01-01
    • 2018-06-11
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 2019-05-31
    • 1970-01-01
    相关资源
    最近更新 更多