在Cloud Firestore中存储自定义对象数组的正确方法吗?

时间:2019-06-12 17:53:23

标签: ios swift firebase google-cloud-firestore

我想在Firebase中存储自定义对象Event,一个Event可以有多个StopOffUser,我将它们保存在Event中对象为[StopOff][User]

但是,当我尝试保存到Firebase时,出现了以下问题:这些类型不是Firebase支持的基本可保存类型。

这对于单个对象是可以的,因为我可以使用toAnyObject方法将它们向下映射到基键和值,但是对于数组,我看不到为数组中的每个项目实现此目的的方法? / p>

当这些自定义模型数组还包含其他自定义对象以创建树时,情况变得更糟

这是我遇到问题的方法

    func toAnyObject() -> Any {
    return [
        "name": name,
        "users": users,
        "startPoint": startPoint.toAnyObject(),
        "endPoint": endPoint.toAnyObject(),
        "stopOffs": stopOffs
    ]
}

我确信我的方法一定不正确,因为我习惯了传统的SQL后端,但是会令我的方法得到纠正

1 个答案:

答案 0 :(得分:0)

似乎使用

"users": users.map { $0.toAnyObject() }

在我的父toAnyObject函数内部,允许按预期将数组转换为对象并存储在云存储中,希望这是最好的解决方案