2017-05-04 127 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) }