如果用户使用android firebase auth ui选择了电话号码,如何删除firebase用户帐户



以下代码适用于在用户使用谷歌注册时删除用户帐户,但不确定如何处理用户是否使用电话号码注册。

val currentUser = FirebaseAuth.getInstance().currentUser ?: return
val credential: AuthCredential? = when (currentUser.providerData[1].providerId) {
    "google.com" -> {
        val fireBaseContext = FirebaseAuth.getInstance().app.applicationContext
        val googleAccount = GoogleSignIn.getLastSignedInAccount(fireBaseContext)
        GoogleAuthProvider.getCredential(googleAccount?.idToken, null)
    }
    "phone" -> {
        // How to get the below params(verificationId, code), when we use firebase auth ui?
        PhoneAuthProvider.getCredential(currentUser.phoneNumber!!, "")
    }
    else -> return
}
currentUser.reauthenticate(credential!!)
    .addOnCompleteListener { reAuthTask ->
        if (reAuthTask.isSuccessful) {
            AuthUI.getInstance().delete(this)
                .addOnFailureListener { deleteTask ->
                    view.showSnackbar(deleteTask.message!!)
                }
        } else { //Handle the exception
            view.showSnackbar(reAuthTask.exception?.message!!)
        }
    }

使用以下方法可以删除当前用户。

FirebaseUser currentUser= FirebaseAuth.getInstance().getCurrentUser();
currentUser.delete()
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "User account deleted.");
                }
            }
        });

了解更多

您可以使用云功能删除用户,只需将用户uid传递给它

admin.auth().deleteUser(uid)
.then(function() {
    console.log("Successfully deleted user");
})
.catch(function(error) {
    console.log("Error deleting user:", error);
});

最新更新