![](/img/trans.png)
[英]Firebase: Swift - Query value in child node without knowing the parent key
[英]In firebase, is it possible to make query at 2nd level node, without knowing the value of 1st node?
请看附图,因为我只知道第二个节点的值( -M5Cc-PcLR9HfRQyJ0SU
),是否可以基于此进行查询并获取第一个节点的值( -M5ukIV79GHeUc0FnVUI
)?
谢谢你。
这是不可能的。 您需要能够构建要查询的节点的完整路径。 没有通配符。
您可能想考虑以这样一种方式复制数据,以便您可以在没有父节点的情况下找到它。 这种数据重复在 nosql 类型的数据库中很常见。
如果我们从字面上理解这个问题,您不需要查询并且答案是肯定的,您可以根据提供的信息获取该数据。
尽管如此,它不会是一个查询。
您问:
获取第一个节点的值
要获取-M5Cc9t节点中的第一个节点,您将读取顶级节点 -M5Cc-Pc...,然后读取该快照中的第一个节点。
这将为您提供包含项目 01 的 -M5Cc9t 节点。同样,您要求第一个节点,并且可以做到。
这是基于您的结构的代码(我缩写了节点名称)
func readChildNode() {
let nodeRefWeKnow = self.ref.child("DEVPCD").child("-M5uklV").child("-M5Cc-Pc")
nodeRefWeKnow.observeSingleEvent(of: .value, with: { snapshot in
let allSnapshots = snapshot.children.allObjects as! [DataSnapshot]
if let firstSnapshot = allSnapshots.first {
let name = firstSnapshot.childSnapshot(forPath: "name")
print(name)
}
})
}
和 output
Snap (name) Item 01
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.