Удалить пользователя Firebase с подтверждением имени пользователя и пароля - PullRequest
0 голосов
/ 27 мая 2018

Мне нужно по запросу удалить пользователя из 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 игнорируются.Можно удалить пользователя для любых значений.Пользователь удален, в том числе для нулевых значений.

Есть предложения?

1 Ответ

0 голосов
/ 27 мая 2018

Пользователь аутентификации Firebase может удалить только свою учетную запись.У них нет возможности удалить учетную запись другого пользователя.

Даже для удаления собственной учетной записи требуется, чтобы вы недавно прошли аутентификацию.Это означает, что вы либо недавно вошли в систему, либо позвоните reauthenticate().

Когда вы звоните reauthenticate Firebase пытается аутентифицировать текущего пользователя с предоставленными вами учетными данными.Если учетные данные не соответствуют текущему пользователю, операция завершится ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...