如何将我的firebase数据库中列表中存储的对象映射到swift中的相应对象?
目前以下内容无效:
for child in snapshot.children{
let tempMed = child as Med
}
答案 0 :(得分:4)
您无法直接从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) }