以下代码适用于在用户使用谷歌注册时删除用户帐户,但不确定如何处理用户是否使用电话号码注册。
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);
});