无法到达我的儿童儿童"在Firebase中。访问"嵌套值。"

时间:2016-10-03 21:59:34

标签: ios swift firebase firebase-realtime-database

enter image description here

此时让我有点疯狂。试图访问imageName,但总是空白。非常感谢。

 ref.observe(FIRDataEventType.value) {
        (snapshot: FIRDataSnapshot!) in
        if let result = snapshot.children.allObjects as? [FIRDataSnapshot] {

      for child in result {
        for child2 in child.children {

          // NO ERROR, and NO VALUE RETURNED
          let imageName = (child2 as? NSDictionary)?["imageName"] as? String ?? ""


          // NO VALUE RETURNED - LOOKING TO GRAB imageName HERE
          print("imageName: \(imageName)")

        }
      }
    }
  }

1 个答案:

答案 0 :(得分:1)

如果您需要查看每个孩子及其值,最好使用.childAdded。

let ref = FirDatabase.database().reference().child("12345")

ref.observe(.childAdded, with: { (snapshot) in

        guard let snap = snapshot.value as? NSDictionary else {
            return
        }

        let t = test()

        t.profileImageUrl = snap["imageName"] as? String
        t.name = snap["name"] as? String
        t.userID = snapshot.key

        print(snap["imageName"])

我用“t”假设你有某种对象代表数据库中的那个节点。

firebase文档中的更多信息,检索数据,子事件

  

FIRDataEventTypeChildAdded事件通常用于检索Firebase数据库中的项目列表。 FIRDataEventTypeChildAdded事件为每个现有子项触发一次,然后每次将新子项添加到指定路径时再次触发。侦听器将传递一个包含新子项数据的快照。