我可以使用用户UID删除FIRAuth用户吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以使用用户UID删除FIRAuth用户吗?相关的知识,希望对你有一定的参考价值。

我在firebase auth中创建了用作Admin的用户。现在我想登录并使用管理员帐户通过使用FIRAuth用户UID删除其他帐户。如何在swift中实现?

答案

Firebase的客户端SDK只能删除当前经过身份验证的用户。它们不允许删除任何其他用户,也不允许删除由其UID标识的用户。

这意味着您无法实现管理功能,例如在Swift中删除任意用户。

相反,你将不得不use the Firebase Admin SDK to delete an arbitrary userallow your iOS users to delete their own account。鉴于Admin SDK允许其用户执行的操作,它应仅在受信任的环境中使用,例如您控制的服务器或Cloud Functions for Firebase。

另一答案

您可以像这样删除/删除用户:

注意:某些对安全性敏感的操作(例如删除帐户,设置主电子邮件地址和更改密码)要求用户最近登录。

 let credential: AuthCredential

            user.reauthenticate(with:credential) { error in
                if let error = error {
                    // An error happened.
                    showAlertWithErrorMessage(message: error.localizedDescription)
                } else {
                    // User re-authenticated.
                    user.delete { error in
                        if let error = error {
                            // An error happened.
                            showAlertWithErrorMessage(message: error.localizedDescription)
                        } else {
                            // Account deleted.
                            Database.database().reference(fromURL: kFirebaseLink).child(kUser).child(userID).removeValue()

                            try!  Auth.auth().signOut()
                            self.navigationController?.popToRootViewController(animated: true)
                        }
                    }

                }
            }
        }else{
            showAlertWithErrorMessage(message: "Try again later")
        }

这样就可以在我的ios应用程序中实现删除用户功能。(从firebase身份验证和数据库两侧删除用户)

100%工作和测试

以上是关于我可以使用用户UID删除FIRAuth用户吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Firebase中退出应用后维护用户会话

从 Firebase 仅检索当前用户的子值

Firestore - 云功能 - 获取删除文档的用户的 uid

从 Firebase 数据库中删除值

快速从 FIRAuth 获取价值

有没有办法通过用户的 UID 从 FirebaseAuth 中删除用户?