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

问题描述 投票:-3回答:2

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

swift firebase firebase-authentication
2个回答
2
投票

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。


0
投票

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

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

 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%工作和测试

© www.soinside.com 2019 - 2024. All rights reserved.