我正在尝试使用未知父代的childKey来获取子快照,而无需更改数据结构。
我尝试将queryOrderByChildId
与queryEqual(toValue:, childKey:)
一起使用,但是我的问题是子快照是字典,并且我只知道键,而不知道值。
是否有任何方法可以将值操纵为Any值,以便能够获得子快照。
我知道title / id1,id3和id3的时间戳
数据结构:
title:
id1:
id2:
id3:
timestamp: 101010101
visible: true
代码:
ref.child("title").child(id1).queryOrderedByKey().queryEqual(toValue: _, childKey: id3)
.observeSingleEvent(of: .value) { (snapshot) in
print(snapshot)
}
输出值为空
编辑:
最后,我这样解决了它:
ref.child("title").child("id1").queryOrdered(byChild: "id3/timestamp").queryEqual(toValue: 101010101).observeSingleEvent(of: .value) { (snapshot) in
print("id2 is: ", (snapshot.value as? [String: Any])?.keys.first)
}
答案 0 :(得分:0)
Firebase数据库查询在运行查询的位置的直接子节点上工作。整个路径中只有一个未知键:您所查询的节点正下方的节点。
因此,如果您知道路径的title/id1
部分,则可以根据节点id2
在该路径下的已知路径下的键,值或属性(例如{{1 }}。
如果知道date/month
,则可以查询title/id1/id2
级别的节点。但是,如果您只知道其路径的id3
部分,则无法查询它们。
另请参阅: