Ios Swift Firestore更新字段值

Ios Swift Firestore更新字段值,ios,firebase,google-cloud-firestore,swift4,Ios,Firebase,Google Cloud Firestore,Swift4,在firestore中,我们添加了多个字段,但没有指定documentID auto ID。我需要更新特定字段值,例如: 我在我的收藏中有个人详细信息列表,包括姓名、年龄和性别 我需要更新name=kavin的特定字段值 这是我的密码 self.DBRef.collectionusers.whereFieldname,isEqualTo:kavin 如何更新此字段值您的问题不清楚您是否希望名称是唯一的,或者是否有许多名为kavin的用户 但是假设用户名是唯一的,您可以这样解决它 self.DBR

在firestore中,我们添加了多个字段,但没有指定documentID auto ID。我需要更新特定字段值,例如:

我在我的收藏中有个人详细信息列表,包括姓名、年龄和性别 我需要更新name=kavin的特定字段值 这是我的密码 self.DBRef.collectionusers.whereFieldname,isEqualTo:kavin
如何更新此字段值

您的问题不清楚您是否希望名称是唯一的,或者是否有许多名为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
            ])
        }
    }
您必须使其返回一个包含一个文档数组的。结果查询在文档上没有任何唯一字段的概念。因此,当名称应该是唯一的时,如果得到多个结果,则必须处理其含义的逻辑


一旦检索到查询结果,您就可以直接访问具有所需属性的文档引用。

您的问题不清楚您是否希望该名称是唯一的,或者是否有许多名为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
            ])
        }
    }
您必须使其返回一个包含一个文档数组的。结果查询在文档上没有任何唯一字段的概念。因此,当名称应该是唯一的时,如果得到多个结果,则必须处理其含义的逻辑

检索到查询结果后,您可以直接访问具有所需属性的文档引用