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

10-08 21:55
查看更多