Ios 如何使用Where字段删除Firestore字段?

Ios 如何使用Where字段删除Firestore字段?,ios,swift,firebase,google-cloud-firestore,Ios,Swift,Firebase,Google Cloud Firestore,我正在尝试删除文档中的一个字段,当字段“uid”与当前用户的ID匹配时。我对此非常困惑,希望您能提供帮助。下面我将详细介绍我的代码以及数据库的设置方式 @IBAction func deleteAccountButtonIsTapped(_ sender: Any) { let db = Firestore.firestore() let userID = Auth.auth().currentUser?.uid let username = usernameTextFi

我正在尝试删除文档中的一个字段,当字段“uid”与当前用户的ID匹配时。我对此非常困惑,希望您能提供帮助。下面我将详细介绍我的代码以及数据库的设置方式

@IBAction func deleteAccountButtonIsTapped(_ sender: Any) {
    let db = Firestore.firestore()
    let userID = Auth.auth().currentUser?.uid
    let username = usernameTextField.placeholder
    
    Auth.auth().currentUser?.delete(completion: { (error) in
        if error != nil {
            print("ERROR MAIN SETTINGS 136")
        } else {
            db.collection("FollowerList").whereField("uid", isEqualTo: userID!).getDocuments { (snapshot, error) in
                for snapshot in snapshot?.documents {
                
                }
            }
            }
                }
)}
我的数据库有一个集合“FollowerList”,其中的文档以用户的UID命名。在这些文档中有一个“uid”字段,其值为用户的uid。
任何帮助都将不胜感激。

这应该可以完成以下工作:

func deleteAccountButtonIsTapped(_ sender: Any) {
        let db = Firestore.firestore()
        let userID = Auth.auth().currentUser?.uid
        let username = usernameTextField.placeholder
        
        Auth.auth().currentUser?.delete(completion: { (error) in
            if error != nil {
                print("ERROR MAIN SETTINGS 136")
            } else {
                db.collection("FollowerList").whereField("uid", isEqualTo: userID!).getDocuments { (snapshot, error) in
                    if let snapshot = snapshot?.documents {
                        for doc in snapshot {
                            
                            //Do delete
                            db.collection("FollowerList").document(doc.documentID).updateData([
                                "fieldToDelete": FieldValue.delete(),
                            ]) { err in
                                if let err = err {
                                    print("Error updating document: \(err)")
                                } else {
                                    print("Document successfully updated")
                                }
                            }
                            
                        }
                    }
                }
            }
        }
    )}
有人会认为它可以这样工作: 但它不作为“QueryDocumentSnapshot”类型的值具有成员“updateData”

func deleteAccountButtonIsTapped(_ sender: Any) {
        let db = Firestore.firestore()
        let userID = Auth.auth().currentUser?.uid
        let username = usernameTextField.placeholder
        
        Auth.auth().currentUser?.delete(completion: { (error) in
            if error != nil {
                print("ERROR MAIN SETTINGS 136")
            } else {
                db.collection("FollowerList").whereField("uid", isEqualTo: userID!).getDocuments { (snapshot, error) in
                    if let snapshot = snapshot?.documents {
                        for doc in snapshot {
                            
                            // How one would think it works but it doesnt
                            doc.updateData([
                                "capital": FieldValue.delete(),
                            ]) { err in
                                if let err = err {
                                    print("Error updating document: \(err)")
                                } else {
                                    print("Document successfully updated")
                                }
                            }
                            
                        }
                    }
                }
            }
        }
    )}

有关更多信息,请参阅本页:

这应该可以完成以下工作:

func deleteAccountButtonIsTapped(_ sender: Any) {
        let db = Firestore.firestore()
        let userID = Auth.auth().currentUser?.uid
        let username = usernameTextField.placeholder
        
        Auth.auth().currentUser?.delete(completion: { (error) in
            if error != nil {
                print("ERROR MAIN SETTINGS 136")
            } else {
                db.collection("FollowerList").whereField("uid", isEqualTo: userID!).getDocuments { (snapshot, error) in
                    if let snapshot = snapshot?.documents {
                        for doc in snapshot {
                            
                            //Do delete
                            db.collection("FollowerList").document(doc.documentID).updateData([
                                "fieldToDelete": FieldValue.delete(),
                            ]) { err in
                                if let err = err {
                                    print("Error updating document: \(err)")
                                } else {
                                    print("Document successfully updated")
                                }
                            }
                            
                        }
                    }
                }
            }
        }
    )}
有人会认为它可以这样工作: 但它不作为“QueryDocumentSnapshot”类型的值具有成员“updateData”

func deleteAccountButtonIsTapped(_ sender: Any) {
        let db = Firestore.firestore()
        let userID = Auth.auth().currentUser?.uid
        let username = usernameTextField.placeholder
        
        Auth.auth().currentUser?.delete(completion: { (error) in
            if error != nil {
                print("ERROR MAIN SETTINGS 136")
            } else {
                db.collection("FollowerList").whereField("uid", isEqualTo: userID!).getDocuments { (snapshot, error) in
                    if let snapshot = snapshot?.documents {
                        for doc in snapshot {
                            
                            // How one would think it works but it doesnt
                            doc.updateData([
                                "capital": FieldValue.delete(),
                            ]) { err in
                                if let err = err {
                                    print("Error updating document: \(err)")
                                } else {
                                    print("Document successfully updated")
                                }
                            }
                            
                        }
                    }
                }
            }
        }
    )}

有关更多信息,请参阅本页:

非常感谢!非常好,非常感谢!完美地工作