android - 使用用户名和密码验证删除 Firebase 用户

标签 android firebase firebase-authentication

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

相关文章:

android - android studio 中的运行时异常启动索引时间

android - 如何在 Edittext 中强制使每个单词以大写开头 - 软键盘中不应该有使其较小大小写的选项

java - Android通用音频资源对象

node.js - 在哪里上传 Firebase Node.js 客户端?

android - 如果 onPause() 或 onStop() 使用 Firebase 数据库中的嵌套回调中断函数,会发生什么

javascript - Firebase 函数日志不显示数据

facebook-graph-api - Firebase 的 FacebookAuthProvider.addScope 有何作用?

javascript - 如何修复 "This operation is not supported in the environment this application is running on. "location.protocol"..."错误?

java - 更新到 api 19 后 Google Maps V2 崩溃

javascript - 如何将 Twilio 的 2 因素短信身份验证与 Firebase 和 Ionic (Javascript) 集成?