在firestore中,我们添加了多个字段,但未指定documentID(自动ID)。我需要更新特定的字段值,例如:
这是我尝试过的代码
self.DBRef.collection("users").whereField("name", isEqualTo: "kavin")
如何更新此字段值
答案 0 :(得分:0)
从您的问题中尚不清楚,是您希望名称是唯一的,还是有很多名为“ 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访问对该文档的引用。