2017-04-07 80 views
0

所有人。我在從Firebase數據庫中的子項中獲取大量圖像時遇到麻煩。我正在做一個iOS項目並使用swift 3和XCode。基本上,畢竟,我的「圖像」變量返回「無」請幫助我,如果你可以。這裏是我使用的代碼:從Firebase子網中抓取圖片

let ref = FIRDatabase.database().reference().child("menu") 
     ref.observeSingleEvent(of: .value, with: { (snapshot) in 
      if let dictionary = snapshot.value as? [String: AnyObject] { 
       let image = dictionary["foodImageUrl"] as? String 
       print(image as Any) // this returns nil 

和數據庫結構

enter image description here

我需要從菜單節點獲取所有的所有的孩子「foodImageUrl」的一個例子

回答

0

您snapshot.value是從菜單子項的列表,而不是每個節點的細節信息,所以你必須使用forEach,然後在每個節點內,使用dictionary["foodImageUrl"] as? String讓您的圖像

試試這個

let ref = FIRDatabase.database().reference().child("menu") 
    ref.observeSingleEvent(of: .value, with: { (snapshot) in 
     for rest in snapshot.children.allObjects as! [FIRDataSnapshot] { 
      if let dictionary = rest.value as? [String: AnyObject]{ 
       let image = dictionary["foodImageUrl"] as? String 
       print(image as Any) 
      } 
     } 
+0

可否請你拿出一個例子,因爲我無法得到它呢? –

+0

@OleksiiDniprovskyi你可以嘗試編輯 – atom2ueki

+0

是的,先生,我已經解決了,今天已經。唯一的事情是你仍然必須保留這部分'如果讓字典= rest.value'跟隨'as? [String:AnyObject]'。無論如何謝謝你的提示! –