【问题标题】:Saving a complex struct to firebase将复杂的结构保存到 firebase
【发布时间】:2017-07-11 12:03:06
【问题描述】:

我有一些非常复杂的结构,它们由自定义 UIViews 和其他 swift 对象组成。我想将它们的实例保存在 Firebase 上。问题是 Firebase 不接受我的类型,所以我可以编写代码来转换为更原始的类型并返回,但这将非常复杂和乏味。我想知道是否有某种方法可以将整个类保存为数据、二进制或字符串上传并稍后检索和解码?或任何其他建议

【问题讨论】:

标签: ios swift firebase firebase-realtime-database


【解决方案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
        ]
     }
 }

这是简单类型的示例。您只需根据需要重写函数 toAnyObjectinit

希望对你有帮助

【讨论】:

  • 嘿,这很有帮助,但我想我正在尝试将数据保存到文件中,然后将该文件上传到 firebase。正在努力,但有一些issues rn
  • @AntersBear 我不确定这是否是最佳实践,但这是您的选择。它可以工作
猜你喜欢
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
相关资源
最近更新 更多