Firebase身份验证:如何获取当前用户的密码?

时间:2017-12-20 16:54:42

标签: java android firebase firebase-authentication

我是 firebase身份验证的新手..所以,我正在创建一个带有个人资料的基本应用,我已经开展了一项活动来编辑用户的基本信息,例如{{1 }}和DisplayName ...,我不想添加更改密码的功能,但首先,我不想检查当前用户的密码,并将其与Email进行比较。 1}}用户在更改之前必须知道他当前的密码。

编辑: 我要问的是,我要求用户写下他当前的String,以便能够将其更改为新的,以减少黑客攻击或类似的事情,例如在InputEditText时我正在尝试更改PasswordFacebook甚至是Email它会询问您当前的Password

![Example

1 个答案:

答案 0 :(得分:4)

来自Firebase documentation

  

某些安全敏感操作(例如删除帐户,设置主电子邮件地址和changing a password)要求用户最近登录。

     

如果您执行其中一项操作,并且用户很久以前已登录,则操作将失败并抛出FirebaseAuthRecentLoginRequiredException。发生这种情况时,通过从用户获取新的登录凭据并将凭据传递给reauthenticate来重新验证用户身份。例如:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

// Get auth credentials from the user for re-authentication. The example below shows
// email and password credentials but there are multiple possible providers,
// such as GoogleAuthProvider or FacebookAuthProvider.
AuthCredential credential = EmailAuthProvider
    .getCredential("user@example.com", "password1234");
// Prompt the user to re-provide their sign-in credentials
user.reauthenticate(credential)
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            Log.d(TAG, "User re-authenticated.");
        }
    });