将 Firebase 数据库子级映射到 swift 3 对象

Teu*_*Vos 2 ios firebase swift firebase-realtime-database

如何将存储在 firebase 数据库列表中的对象映射到 swift 中相应的对象?

现在以下内容不起作用:

for child in snapshot.children{
    let tempMed = child as Med
}
Run Code Online (Sandbox Code Playgroud)

Nir*_*v D 5

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
    }
}
Run Code Online (Sandbox Code Playgroud)

现在以这种方式获取数组Med

let meds = snapshot.children.flatMap { Med(snapshot: $0 as! FIRDataSnapshot)  }
Run Code Online (Sandbox Code Playgroud)