2017-04-07 86 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]'。无论如何谢谢你的提示! –