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

时间:2017-03-17 11:42:22

标签: swift firebase firebase-authentication

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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%正常工作并经过测试