我需要根据请求从 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/