Swift Firestore 更新字段值

Posted

技术标签:

【中文标题】Swift Firestore 更新字段值【英文标题】:Swift Firestore Update Field values 【发布时间】:2018-12-28 08:09:36 【问题描述】:

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

    我的收藏中有人员详细信息列表,其中包含姓名、年龄和性别 我需要更新 name = kavin 的特定字段值

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

【问题讨论】:

【参考方案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 直接访问对该文档的引用。

【讨论】:

以上是关于Swift Firestore 更新字段值的主要内容,如果未能解决你的问题,请参考以下文章

如何读取 Firestore (Swift) 中字段的值

更新 Firestore 数据库中文档的字段

使用 Swift (Firestore) 访问特定文档字段

如何从 pub 子函数更新 Firestore 字段

Swift - 从随机创建的文档 ID 中获取字段(Firestore)

如何使用swift在firestore文档中的字段中生成空值?