Firebase嵌套索引查询规则

时间:2016-08-10 20:10:51

标签: ios swift firebase firebase-realtime-database

昨晚我试图在firebase的数据库中索引一个嵌套对象。以下是我的对象数据和规则。目前在orderedBy locID上,它返回的索引未定义。非常感谢任何帮助谢谢!

我的数据:

My Data:

我的规则:

List

触发错误的代码:

{
  "rules": {
    "locations": {
      "$uid": {
        ".indexOn": ["locID"]
      }
    },
    ".read": true,
    ".write": true
  }
}

以上是使用pyrebase包装器返回未定义的索引。

1 个答案:

答案 0 :(得分:1)

您正在跳过查询中的某个级别。

Firebase将查询您执行查询的位置的直接子项。因此,在您的情况下,它会查询项10S12S,并尝试对locID进行排序/过滤。这些节点都没有子locID,因为该属性在树中更深一层。

Pyrebase可能会与Firebase REST API进行对话,当您尝试订购/过滤的字段没有索引时,它将失败。

您的用例有点难以确定,但一般来说,此问题的解决方案是保留反向索引。在这种情况下,可以是一个列表,用于跟踪每个10S的{​​{1}} / 12S事物。

locID