我的数据是非规范化的,并使用像firebase团队建议的反向索引。类似于:
{
"users": {
"alovelace": {
"name": "Ada Lovelace",
// Index Ada's groups in her profile
"groups": {
// the value here doesn't matter, just that the key exists
"techpioneers": true,
"womentechmakers": true
}
},
...
},
"groups": {
"techpioneers": {
"name": "Historical Tech Pioneers",
"members": {
"alovelace": true,
"ghopper": true,
"eclarke": true
}
},
...
}
}
现在我想加载所有Ada的小组。我可以很容易地获得她所属的组ID列表,因为它是她用户对象的一部分。
我可以通过ID一次查询所有Ada的特定群组吗?或者我是否需要为每个组ID创建一个ValueEventListener
并单独请求每个组?
在安全方面 - 让我们假设每个组只能由其成员读取,因此我无法查询所有组并在事后对其进行排序。
答案 0 :(得分:1)
我猜你可以这样做:
var ref = new Firebase("<..>/groups");
ref.orderByChild("members/alovelace").equalTo(true)
.once('value').then(function(dataSnapshot) {
// handle read data
})
(未经测试,但根据this现在支持深度查询)