我具有以下数据结构:
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个或更多深度进行搜索时,如何访问具有已知属性和已知值的对象?
答案 0 :(得分:1)
不幸的是,firebase实时数据库使您能够仅过滤一级深度的子级。如果您可以灵活地到达特定的id1
(您声明为未知的),则可以通过向下浏览层次结构来使用orderByChild
和equalTo
方法过滤item
。另外,如果有机会,您可以手动过滤客户端或更改数据结构。
从firebase参考资料中:
按键或值过滤
您可以使用startAt(),endAt()和equalTo() 选择任意的起点,终点和等价点 查询。这对于对数据进行分页或使用 具有特定价值的孩子。