Firebase中的嵌套密钥查询?

时间:2017-01-13 03:34:16

标签: ios swift firebase firebase-realtime-database nosql

Firebase数据结构

{
  "books": {
    "-KaKjMMw-WQltqxrGEmj": {
      "categories": {
        "cat1": true,
        "cat2": true
      },
      "author": "user1",
      "title": "event1"
    },
    "-KaKjMMw-WQltqxrGEmk": {
      "categories": {
        "cat1": true,
        "cat2": false
      },
      "author": "user1",
      "title": "event2"
    }
  }
}

查询查找特定作者的所有图书

FNode.testNode.child("books")
    .queryOrderedByChild("author")
    .queryEqualToValue("user1")
    .observeEventType(.Value) { (snapshot) in
    print(snapshot)
}

问题:

我想找到属于 cat1 的所有图书。无法弄清楚要执行此操作的查询。

1 个答案:

答案 0 :(得分:1)

经过大量的打击和审判,终于得到了答案。

对于上述结构。如果您想查找属于 cat1 的所有图书,以下是对此的查询:

FNode.testNode.child("books")
    .queryOrderedByChild("categories/cat1").queryEqualToValue(true)
    .observeEventType(.Value) { (snapshot) in
    print(snapshot)
}

注意: FNode.testNode 可以是 FIRDatabaseReference

类型的任何节点

致Firebase小组:您能否在数据结构中包含所有可能的firebase查询示例,并将其与firebase文档放在一起。现在,这对我们来说是一种打击和试验。