This question already has answers here:
Query based on multiple where clauses in Firebase
(4个答案)
去年关闭。
我有这样的火力基地(我无法更改桌子设计)
存放在firebase中,
我将使用visitorLocation和visitorId进行搜索,然后更改Enabled值。
我现在所拥有的:
但是后来我得到了错误:您不能合并多个orderBy调用!
有人可以帮忙吗?如何搜索多个键值?
谢谢 !!!
(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/