在我的项目中,我有一个“员工”集合,其中每个员工文档都包含以下文件:firstName,lastName,zipCode,refreshToken等。 当尝试仅更新refreshToken的值时,我使用“ updateData”,如文档docs中所示 我的代码:
static func updateToken(token:String){
Firestore.firestore().collection("companies").document(self.user.companyId).collection("employees")
.document(self.user.employeeId).updateData(["refreshToken" : token])
}
但是删除员工文档的所有其他值(firstName,lastName,zipCode等),并且操作后节点中仅存在新的refreshToken值。我是在做破旧的事还是误解了“ updateData”的想法?
答案 0 :(得分:1)
如果您想更新字段的值并且如果文档确实存在,则其内容将被新提供的数据覆盖,除非您指定应将数据合并到现有文件中文档,如下所示:
Firestore.firestore().collection("companies").document(self.user.companyId)
.collection("employees").document(self.user.employeeId)
.setData(["refreshToken" : token], merge: true)
}
看,我有setData()
而不是updateData()
函数。