{
"key1" : {
"region": 2,
"text": "This is text"
},
"key2" : {
"region": 8,
"text": "This is text"
}.
"key3" : {
"region": 6,
"text": "This is text"
}
}
我想获得区域为2和8的JSON对象。
答案 0 :(得分:1)
试试这个:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference();
Query q=ref.orderByChild("region").startAt(2).endAt(8);
q.addValueEventListener(..){//..}
假设随机密钥是直接子节点到根节点。
答案 1 :(得分:0)
如果您想使用一系列区域,意味着从2
到8
的所有区域,其中还包括所有区域,如(3,4,5,6和7),彼得的答案非常合适。
但是,如果您只想使用区域2
和8
,我建议您复制数据。对于Firebase而言,这是一种非常常见的做法,名为denormalization
,为此,我建议您观看此视频,Denormalization is normal with the Firebase Database。
当您复制数据时,有一件事需要记住。与添加数据的方式相同,您需要对其进行维护。换句话说,如果你想更新/拒绝一个项目,你需要在它存在的每个地方都这样做。
在您的情况下,您应该考虑扩充数据结构以允许反向查找,如下所示:
regionTwoAndEight
|
--- "key1": true
|
--- "key2": true