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

Tam*_*afi 6 java android firebase firebase-authentication

我是firebase Authentication 的新手.. 所以,我正在创建一个带有配置文件的基本应用程序,我做了一个活动来编辑用户的基本信息,例如DisplayNameEmail... ,我不想添加功能更改密码的,但首先,我wan't检查当前用户的密码,并把它比作一个StringInputEditText用户必须改变之前知道他的当前密码。

编辑:我问的是事情是我要求用户写出他目前Password在为了能够将其更改为一个新的,以减少黑客攻击或类似的东西,就像Facebook当你试图改变EmailPassword或即使Name它要求您提供当前的Password.

![例子

Fra*_*len 5

Firebase 文档

某些安全敏感操作(例如删除帐户、设置主电子邮件地址和更改密码)要求用户最近登录。

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

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.");
        }
    });
Run Code Online (Sandbox Code Playgroud)

  • 嘿 Tamim,这是您首先要求用户首先提供其现有密码的机制。你用那个重新认证。如果成功,您可以向用户询问新密码并调用 `updatePassword` API 来更新用户的密码。这正是您所要求的。 (3认同)
  • 更改密码要求用户最近登录。如果距离上次登录时间过长,Firebase 将引发异常。发生这种情况时,您需要在尝试再次更改密码之前重新进行身份验证。 (2认同)