2016-10-03 66 views
0

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://stackoverflow.com/questions/28132620/can-i-manipulate-fdatasnapshot-once-i-have-queried-for-it看起來像一個有趣的分析模型。 –

回答

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」假設你有某種對象代表數據庫中的那個節點。

在火力文檔更多信息,在檢索數據,該FIRDataEventTypeChildAdded事件通常用於在火力地堡數據庫中檢索項的列表子事件

。 FIRDataEventTypeChildAdded事件對每個現有子對象觸發一次,然後每次將新子對象添加到指定路徑時再次觸發。監聽器傳遞一個包含新孩子數據的快照。

+0

https://www.firebase.com/docs/web/api/datasnapshot/和這個FB頁面是潛入的地方。 http://stackoverflow.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/ –