【问题标题】:Firebase hierarchy depth access [duplicate]Firebase层次结构深度访问[重复]
【发布时间】:2019-03-04 06:44:02
【问题描述】:

我有以下数据结构:

items:
  id1 - dynamically set, unknown
    id2 - dynamically set, known
      item: data

我想获取id2 中的所有数据。

使用firebase.database().ref('items').orderByChild('item').equalTo('data') 我得到null,但同时访问id1 中的所有数据也没有问题。显然,使用这种方法不可能访问具有 2 个或更多深度级别的数据。

Firebase 声明它们最多支持 32 级嵌套。所以无论如何应该有一些高级搜索数据的方法。

如何在使用任意键在 2 个或更多级别的深度搜索时访问具有已知属性和已知值的对象?

【问题讨论】:

    标签: firebase firebase-realtime-database


    【解决方案1】:

    不幸的是,firebase 实时数据库让您只能过滤一级深度的子​​级。如果您可以灵活地访问特定的id1(您声明为未知),则可以通过向下层次结构使用orderByChildequalTo 方法过滤item。或者,如果有机会,您可以手动过滤客户端或更改数据结构。

    来自 Firebase 参考资料:

    按键或值过滤

    您可以使用 startAt()、endAt() 和 equalTo() 选择任意的起点、终点和等价点 查询。这对于分页数据或查找项目很有用 具有特定价值的孩子。

    https://firebase.google.com/docs/database/web/lists-of-data

    【讨论】:

    • 谢谢!我猜这很奇怪,而且是特定于自然的东西。也许您知道他们的新 Cloud Firestore 是否也是如此?
    • 嗨 Igniter,我对 Firestore 没有任何经验,所以我不想误导你;)
    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多