访问儿童Firebase

时间:2016-09-30 10:31:30

标签: swift firebase firebase-realtime-database swift3

我真的不太了解Swift 3.0 Firebase语法的更新,但最重要的是从快照的子项中检索值似乎是不可能的。为此,我使用这样的代码片段:

 if let snapVal = snapshot.value as? [String: AnyObject] {
     for c in snapshot.children {
                        let cx = (c as! AnyObject)
                        let name = cx["NAME"] as! String

     }
}

我采取了很多方法,但FIRDatabaseSnapshot在新的Swift 3更新中有许多限制,AnyObject不允许从对象读取值,类似NSDictionary的类型也没有子节点。非常感谢所有帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

您收到的类型为FIRDataSnapshot的snapShot实际上是符合 NSObject 的自定义类,因此只有符合FIRDataSnapshot的变量才能访问自定义FIRDataSnapshot提供的功能,例如 .children

但是当你访问一个新的变量,其值snap.value被解析为 [String:AnyObject] 时,基本上它变成了一个NSDictionary,而NSDictionary没有任何参数{{ 1}}。

.children