【问题标题】:Can I delete FIRAuth users using their User UID?我可以使用用户 UID 删除 FIRAuth 用户吗?
【发布时间】:2017-03-17 11:42:21
【问题描述】:

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

【问题讨论】:

    标签: swift firebase firebase-authentication


    【解决方案1】:

    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。

    【讨论】:

    • 感谢您的回答:D
    【解决方案2】:

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

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

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

    【讨论】:

    • 我将编辑您的代码以显示AuthCredential 需要先初始化;不熟悉 API 的人如何使用它并不明显。
    猜你喜欢
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2012-08-28
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2019-04-12
    相关资源
    最近更新 更多