Swift Firestore 更新字段值

6
在Firestore中,我们添加了多个字段,而没有指定文档ID(自动ID)。我需要更新特定字段的值,例如:
  1. 我的收藏夹中有人员详细信息列表,其中包含姓名、年龄和性别。
  2. 我需要更新名称为kavin的字段值。
这是我尝试过的代码: self.DBRef.collection("users").whereField("name", isEqualTo: "kavin") 如何更新此字段的值?
1个回答

13

从您的问题中无法确定您是否希望名称是唯一的,还是有许多名为"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属性访问该文档的引用并更新所需字段

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接