将复杂的结构保存到 firebase
Posted
技术标签:
【中文标题】将复杂的结构保存到 firebase【英文标题】:Saving a complex struct to firebase 【发布时间】:2017-07-11 12:03:06 【问题描述】:我有一些非常复杂的结构,它们由自定义 UIViews
和其他 swift 对象组成。我想将它们的实例保存在 Firebase 上。问题是 Firebase 不接受我的类型,所以我可以编写代码来转换为更原始的类型并返回,但这将非常复杂和乏味。我想知道是否有某种方法可以将整个类保存为数据、二进制或字符串上传并稍后检索和解码?或任何其他建议
【问题讨论】:
我从未尝试过,但这看起来很有希望:***.com/questions/29599005/… 【参考方案1】:来自documentation:
您可以传递设置字符串、数字、布尔值、null、数组或任何 JSON 对象
因此,您需要编写自己的转换器。
只需为具有 3 种方法的对象创建 structs
/classes
:
// example with 2 fields: Int and String
struct ItemFromFirebase
let type: Int
let name: String
// manual init
init(type: Int, name: String)
self.type = type
self.name = name
// init with snapshot
init(snapshot: DataSnapshot)
let snapshotValue = snapshot.value as! [String: AnyObject]
type = snapshotValue["type"] as! Int
name = snapshotValue["name"] as! String
// function for saving data
func toAnyObject() -> Any
return [
"type": type,
"name": name
]
这是简单类型的示例。您只需根据需要重写函数 toAnyObject
和 init
。
希望对你有帮助
【讨论】:
嘿,这很有帮助,但我想我正在尝试将数据保存到文件中,然后将该文件上传到 firebase。正在努力,但有一些issues rn @AntersBear 我不确定这是否是最佳实践,但这是您的选择。它可以工作以上是关于将复杂的结构保存到 firebase的主要内容,如果未能解决你的问题,请参考以下文章