Firebase 从 AutoId 节点读取数据 Swift iOS

Firebase reading data from AutoId node Swift iOS

我正在尝试使用此层次结构从 Firebase 获取数据:

现在我想访问我正在做的 autoId 的数据:

let ref = Constants.refs.databaseChats.child("\(jobID)")
        ref.observe(.value, with: {
            (snapshot) in

            if let result = snapshot.children.allObjects as? [DataSnapshot] {

                for child in result{
                    let autoId = child.key as String
                    let newRef = ref.child("\(autoId)")
                    newRef.observeSingleEvent(of: .value, with: {
                        (snapshot2) in
                        let model = snapshot2.value as? [String: Any] ?? [:]
                        })
                      }
                    }
             }

此处jobID为0。 但它不会进入 newRef.observeSingleEvent() 的闭包,我不知道为什么。路径也是正确的我已经通过在每个循环中调试和打印 newRef 来检查它。

既然可以使用 .observeSingleEvent(),为什么还要使查询复杂化?

ref.observeSingleEvent(of: .value, with: { (snap : DataSnapshot)  in
    for child in snap.children {
        let key = (child as AnyObject).key as String

        // Use the keys however you like
    }
}) { (err: Error) in
    print("\(err.localizedDescription)")
}