我有以下数据库
-KYTfJZQbg0RVzHeecIS
createdAt: 1481204648530
message: "rgd"
read: false
reciever: "583d15cf45f3330807364c55"
sender: "58490e9945f33364ac6cd7b1"
updateAt: 1481204648654
现在我想过滤“READ”的结果== FALSE和“SENDER”== 58490e9945f33364ac6cd7b1
我怎样才能做到这一点?
任何帮助将不胜感激 感谢
编辑: -
我在android中使用它作为
Query query = reference.orderByChild("read").equalTo(false)
.orderByChild("sender").equalTo(datum.getEmployer().getEmployerId());
它给了java.lang.IllegalArgumentException: You can't combine multiple orderBy calls!
答案 0 :(得分:4)
不幸的是,使用Firebase并不是直截了当的.....在Firebase乐队的视频中做了非常相似的事情(约9分钟)https://www.youtube.com/watch?v=sKFLI5FOOHs&list=PLl-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s&index=4
答案 1 :(得分:3)
firebase不支持多个orderbychild()查询。
现在我想过滤“READ”== FALSE AND的结果 “SENDER” == 58490e9945f33364ac6cd7b1
在您的数据中创建一个新密钥,即READ_SENDER并合并两者的数据并使用这样的查询 -
-KYTfJZQbg0RVzHeecIS
createdAt: 1481204648530
message: "rgd"
read: false
reciever: "583d15cf45f3330807364c55"
sender: "58490e9945f33364ac6cd7b1"
read_sender : "false_58490e9945f33364ac6cd7b1"
updateAt: 1481204648654
Query query = reference.orderByChild("read_sender").equalTo("false_"+datum.getEmployer().getEmployerId());