我需要根据要求从Firebase中删除用户,但要确保该用户删除自己的帐户。因此,我希望该用户输入他的用户名和密码。
我有下一个代码:
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
AuthCredential credential = EmailAuthProvider
.getCredential(txtEmail.getText().toString().trim(),
txtPassword.getText().toString().trim());
assert user != null;
user.reauthenticate(credential)
.addOnCompleteListener(task -> user.delete()
.addOnCompleteListener(task1 -> {
progressDialog.dismiss();
if (task1.isSuccessful()) {
//Log.d(TAG, "User account deleted.");
Toast.makeText(getActivity(), getResources().getString(R.string.delete_ok), Toast.LENGTH_SHORT).show();
final Handler handler = new Handler();
handler.postDelayed(() -> {
//here I try to close my app from a fragment but no success
Activity act = getActivity();
if (act instanceof ActivityHome) {
((ActivityHome) act).onClose();
}
}, 2000);
} else {
Toast.makeText(getActivity(),getResources().getString(R.string.delete_cancel) , Toast.LENGTH_SHORT).show();
}
}));
删除用户,但忽略txtEmail和txtPassword的值。可以删除用户的任何值。用户被删除,包括空值。
有什么建议么?
最佳答案
Firebase身份验证用户只能删除自己的帐户。他们无法删除其他用户的帐户。
即使删除自己的帐户,也需要您最近通过了身份验证。这意味着您必须最近登录或致电reauthenticate()
。
当您呼叫reauthenticate
时,Firebase会尝试使用您提供的凭据对当前用户进行身份验证。如果凭据与当前用户不匹配,则操作将失败。
关于android - 使用用户名和密码验证删除Firebase用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50554863/