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

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

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

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

【问题讨论】:

    标签: ios firebase google-cloud-firestore swift4


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

    【讨论】:

      猜你喜欢
      • 2021-07-20
      • 2021-04-14
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多