2017-05-04 185 views

回答

3

你不能直接从FIRDataSnapshot获得自定义对象,你要做的就是创建一个init与您的自定义类或结构,并用它来从FIRDataSnapshot创建对象。

防爆

struct Med { 

    let title: String 
    let desc: String 
    init?(snapshot: FIRDataSnapshot) { 
     guard let dic = snapshot.value as? [String:Any], 
       let title = dic["title"] as? String, 
       let desc = dic["description"] as? String else { 
      return nil 
     } 
     self.title = title 
     self.desc = desc 
    } 
} 

现在得到的Med这样阵列。

let meds = snapshot.children.flatMap { Med(snapshot: $0 as! FIRDataSnapshot) }