This question already has answers here:
Query based on multiple where clauses in Firebase
                                
                                    (4个答案)
                                
                        
                                去年关闭。
            
                    
我有这样的火力基地(我无法更改桌子设计)

{
  "Visits" : {
    "-LOyE4h8k218xg-SI2Hy" : {
      "Enabled" : false,
      "visitorLocation" : "01",
      "visitorId" : "22"
    },
    "-LOyG4__aiiJ3FBVnWbU" : {
      "Enabled" : false,
      "visitorLocation" : "02",
      "visitorId" : "22"
    },
    "-LOyG5Wyu3cZmZFaCBxY" : {
      "Enabled" : false,
      "visitorLocation" : "03",
      "visitorId" : "22"
    },
    "-LOyG7gkUj8OFdEsyBGS" : {
      "Enabled" : false,
      "visitorLocation" : "04",
      "visitorId" : "22"
    }
  }
}


存放在firebase中,

我将使用visitorLocation和visitorId进行搜索,然后更改Enabled值。

我现在所拥有的:

 DatabaseReference ref =

FirebaseDatabase.getInstance().getReference("visitores");
//This is good, Returns the 4 nodes.
            Query q = ref.orderByChild("visitorId").equalTo("22");


            q.orderByChild("visitorLocation").equalTo("01").addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    dataSnapshot.getChildren().iterator().next().getKey();
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });


但是后来我得到了错误:您不能合并多个orderBy调用!
有人可以帮忙吗?如何搜索多个键值?

谢谢 !!!

最佳答案

您不能同时使用“ visitorLocation = 04 && visitorId = 22”,但可以通过组合这两个字段(如“ visitorLocation_visitoId = 04_22”)来修改表结构
为此,您需要在Firebase数据库表结构中添加一个字段,以便可以应用此AND查询

关于android - 使用多个键搜索和更新Firebase ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52843075/

10-11 22:32
查看更多