无法在Firebase中找到我的“儿童孩子”。访问“嵌套值”。

问题描述:

enter image description here无法在Firebase中找到我的“儿童孩子”。访问“嵌套值”。

在这一点上让我有点疯狂。试图访问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)") 

     } 
     } 
    } 
    } 
+0

嗨,坦率地说,感谢您的编辑。这是一个出现LOTS的问题。答案是如何做到这一点的混杂。旧的FB代码,新的FB代码等。 如果FB团队在“最佳实践”中做了一个寻呼机,那将会非常棒,它可以帮助很多人从Parse转移。 –

+0

http://*.com/questions/28132620/can-i-manipulate-fdatasnapshot-once-i-have-queried-for-it看起来像一个有趣的分析模型。 –

如果您需要查看每个单独的孩子,并且其值更好地使用.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”假设你有某种对象代表数据库中的那个节点。

在火力文档更多信息,在检索数据,该FIRDataEventTypeChildAdded事件通常用于在火力地堡数据库中检索项的列表子事件

。 FIRDataEventTypeChildAdded事件对每个现有子对象触发一次,然后每次将新子对象添加到指定路径时再次触发。监听器传递一个包含新孩子数据的快照。

+0

https://www.firebase.com/docs/web/api/datasnapshot/和这个FB页面是潜入的地方。 http://*.com/questions/28132620/can-i-manipulate-fdatasnapshot-once-i-have-queried-for-it –

+0

@EdwardPotter抱歉,我不明白你想说什么..你尝试了什么我告诉过你?顺便说一句,firebase页面是从旧文件 – Rialcom

+0

嗨,我转向正在实施swiftyJSON。将回报。喜欢把它归结为一行或2。将检查出新的文档。我今天也会尝试一下你的实现。谢谢。 此处引用: http://www.waltza.com/2015/12/10/firebase-and-swift-type-safety-with-swiftyjson/ –