【问题标题】:Swift Firestore Update Field valuesSwift Firestore 更新字段值
【发布时间】:2018-12-28 08:09:36
【问题描述】:
在 Firestore 中,我们添加了多个字段,但未指定 documentID(自动 ID)。我需要更新特定的字段值,例如:
- 我的收藏中有人员详细信息列表,其中包含姓名、年龄和性别
- 我需要更新 name = kavin 的特定字段值
这是我尝试过的代码
self.DBRef.collection("users").whereField("name", isEqualTo: "kavin")
如何更新该字段值
【问题讨论】:
标签:
ios
firebase
google-cloud-firestore
swift4
【解决方案1】:
您的问题不清楚您是否希望该名称是唯一的,或者是否有许多用户名为 “kavin”。
但是假设用户名是唯一的,你可以这样解决
self.DBRef.collection("users")
.whereField("name", isEqualTo: "kavin")
.getDocuments() { (querySnapshot, err) in
if let err = err {
// Some error occured
} else if querySnapshot!.documents.count != 1 {
// Perhaps this is an error for you?
} else {
let document = querySnapshot!.documents.first
document.reference.updateData([
"age": 99
])
}
}
您必须创建an asynchronous query,这将返回一个QuerySnapshot,其结果是一个文档数组。生成的查询在您的文档中没有任何“唯一”字段的概念。因此,当名称应该是唯一的时,如果您得到多个结果,您必须处理其含义的逻辑。
检索到查询结果后,您可以使用所需的reference 属性和update the fields 直接访问对该文档的引用。