ios - Firestore 仍会覆盖我的数据?

Posted

技术标签:

【中文标题】ios - Firestore 仍会覆盖我的数据?【英文标题】:ios - Firestore still overwrites my data? 【发布时间】:2018-01-08 05:37:46 【问题描述】:

我正在尝试将数据添加到我的 firestore 中,但是,我已使用 SetOptions.merge() 方法遵循文档,但它仍在覆盖我的数据

这是我的代码

 docRef = Firestore.firestore().collection("\(userID!)").document("\(self.dateChose)")
        let dataToBeSaved: [String: Any] = ["workout name": routineNames, "workout sets": routineSets, "workout Reps": routineReps]
        docRef.setData(dataToBeSaved, options: SetOptions.merge()) (error) in
            if let error = error 
                print(error.localizedDescription)
             else 
                self.dismiss(animated: true, completion: nil)
            

        

我不确定我在这里做错了什么或应该做些什么,以便我可以将我的应用用户新添加的锻炼(包括名称、代表和组)附加到我的云 Firestore 中

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

合并仅适用于字段级别,不支持附加到数组或映射。

这意味着它只会影响您正在编写的字段,但会覆盖那些字段。

你有两个选择:

    执行读写事务以将其附加到相关字段(需要您在线)

    将每个锻炼作为单独的文档写入用户文档下的 workouts 子集合中

【讨论】:

尝试了选项 2,但它仍然覆盖了我所拥有的

以上是关于ios - Firestore 仍会覆盖我的数据?的主要内容,如果未能解决你的问题,请参考以下文章

离线缓存数据的 Firestore 定价说明

为啥即使我覆盖 touchesMoved:withEvent:,UIScrollView 的子类仍会滚动?

当我使用设置数据时,Flutter Firestore 会覆盖数据

反应:更新 Firestore 文档中的一条数据会导致所有其他数据被空字符串覆盖

我正在尝试从我的 ios Swift 项目中的 Firestore 数据库中获取数据

ios:将数据发布到 Firestore 时出现问题