Из вашего вопроса неясно, ожидаете ли вы, что имя будет уникальным или если есть много пользователей с именем "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
])
}
}
Вы должны сделать асинхронный запрос , который вернет QuerySnapshot , в результате которого будет массив документов.Полученный запрос не имеет понятия «уникальных» полей в ваших документах.Таким образом, вы должны понимать логику того, что это значит, если вы получаете более одного результата, когда имя должно быть уникальным.
После получения результата запроса вы можете напрямую получить доступ к ссылке на этот документ с атрибутом reference и обновить поля , которые вы хотели.