Firebase数据库 - 检索多个条目

Ita*_*ski 5 android firebase firebase-realtime-database

我的数据是非规范化的,并使用像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
      }
    },
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想加载所有Ada的组.我可以很容易地获得她所属的组ID列表,因为它是她的用户对象的一部分.

有没有办法让我一次通过ID查询Ada的所有特定群组?或者我是否需要创建ValueEventListener每组ID并分别请求每个组?

在安全方面 - 让我们假设每个组只能由其成员读取,因此我无法查询所有组并在事后对其进行排序.

Dre*_*led 1

我想你可以这样做:

var ref = new Firebase("<..>/groups");
ref.orderByChild("members/alovelace").equalTo(true)
  .once('value').then(function(dataSnapshot) {
     // handle read data
})
Run Code Online (Sandbox Code Playgroud)

(未经测试,但根据,现在支持深度查询)