Swift Firestore更新字段值

时间:2018-12-28 08:09:37

标签: ios firebase google-cloud-firestore swift4

在firestore中,我们添加了多个字段,但未指定documentID(自动ID)。我需要更新特定的字段值,例如:

  1. 我的收藏夹中包含个人详细信息列表,其中包含姓名,年龄和性别
  2. 我需要更新名称= kavin的特定字段值

这是我尝试过的代码 self.DBRef.collection("users").whereField("name", isEqualTo: "kavin") 如何更新此字段值

1 个答案:

答案 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访问对该文档的引用。