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

时间:2018-01-08 05:37:47

标签: ios swift firebase google-cloud-firestore

我正在尝试将数据添加到我的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)
            }

        }

我不确定我在这里做错了什么或者我应该做些什么,以便我可以将我的应用用户新添加的锻炼(包括姓名,代表和套装)添加到我的云端防火墙

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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

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

您有两个选择:

  1. 执行读写事务以将其附加到相关字段(这需要您联机)

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