【问题标题】:Firebase Nested Index Query RulesFirebase 嵌套索引查询规则
【发布时间】:2016-08-11 05:49:16
【问题描述】:

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

我的数据:

我的规则:

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

触发错误的代码:

locData = db.child("Locations").order_by_child("locID").equal_to(someID).get() 

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

【问题讨论】:

  • 你能给出重现问题的最小代码吗?

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

您在查询中跳过了一个级别。

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

Pyrebase 可能会与 Firebase REST API 对话,当您尝试排序/过滤的字段没有索引时,该 API 会失败。

很难确定您的用例,但一般来说,解决这个问题的方法是保留一个反向索引。在这种情况下,这可能是一个列表,用于跟踪每个 locID 的 10S/12S 事物。

locByLocID: {
  5689: "10S",
  8223: "12S"
}

【讨论】:

    猜你喜欢
    • 2018-06-17
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2020-01-28
    • 2018-07-03
    • 2020-11-18
    相关资源
    最近更新 更多