【问题标题】:How can I query this Firebase structyre如何查询此 Firebase 结构
【发布时间】:2020-12-31 06:14:53
【问题描述】:

我想列出会话中等于某个 id 的所有元素。我是 Firebase 的新手,我正在尝试了解这种数据库。

【问题讨论】:

  • 您使用的是实时数据库还是 Firestore?

标签: javascript firebase web firebase-realtime-database


【解决方案1】:

Firebase 具有三个排序/过滤操作:

  1. orderByKey() 直接子节点的键上的订单/过滤器,这意味着在您的 JSON 中的 6-8-20207-8-2020 上。
  2. orderByValue() 对直接子节点的简单值进行排序/过滤。由于您的子节点因此具有 JSON 对象,因此此操作不适用于您的数据结构。
  3. orderByChild(...) 对每个直接子节点下的命名属性的值进行排序/过滤。此运算符对您的用例没有帮助,因为您希望在 key 而不是值上进行排序/过滤。

不幸的是,这意味着它不可能在您当前的数据结构中。 orderBy 操作都不会对您要查询的键进行排序/过滤。


您需要修改数据结构以允许用例,这在使用 NoSQL 数据库时很常见。在您的情况下,我将添加一个额外的数据结构,将推送 ID 映射回使用日期:

"keysToDates": {
  "-MFytoo...3So": {
    "6-8-2020": true,
    "7-8-2020": true
  },
  "-MFyunx...wFs": {
    "6-8-2020": true
  }
}

现在有了这个额外的结构,您可以查找 ID 的日期,然后从那里查找系列和其他信息。后一种加载并不像你最初想象的那么慢,就像Firebase pipelines these requests across its WebSocket connection

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2014-08-13
    相关资源
    最近更新 更多