繁体   English   中英

在firebase中,是否可以在不知道第一个节点的值的情况下在第2级节点进行查询?

[英]In firebase, is it possible to make query at 2nd level node, without knowing the value of 1st node?

请看附图,因为我只知道第二个节点的值( -M5Cc-PcLR9HfRQyJ0SU ),是否可以基于此进行查询并获取第一个节点的值( -M5ukIV79GHeUc0FnVUI )?

谢谢你。

Firebase结构

这是不可能的。 您需要能够构建要查询的节点的完整路径。 没有通配符。

您可能想考虑以这样一种方式复制数据,以便您可以在没有父节点的情况下找到它。 这种数据重复在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM