Firebase层次结构深度访问

时间:2018-09-28 09:36:41

标签: firebase firebase-realtime-database

我具有以下数据结构:

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个或更多深度进行搜索时,如何访问具有已知属性和已知值的对象?

1 个答案:

答案 0 :(得分:1)

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

从firebase参考资料中:

  

按键或值过滤

     

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

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