Firebase数据库 - 检索多个条目

时间:2016-07-13 15:44:09

标签: 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
      }
    },
    ...
  }
}

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

我可以通过ID一次查询所有Ada的特定群组吗?或者我是否需要为每个组ID创建一个ValueEventListener并单独请求每个组?

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

1 个答案:

答案 0 :(得分:1)

我猜你可以这样做:

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

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