Android Firebaseui auth-如何重新验证



相关问题:Firebase Auth UI如何处理重新验证?(这个问题是针对iOS的),尚未解决)

我想允许用户在Android上使用Firebaseui更新其电子邮件/密码/等。

根据指南," drop-in" UI提供:

帐户管理 - 流动以处理帐户管理任务,例如帐户创建和密码重置。

在GitHub上,看起来Authui管理页面功能仍在进行中(对吗?)

所以,我创建了自己的帐户管理页面,但是某些操作对安全性敏感,需要重新验证:

某些对安全敏感的操作(例如删除帐户,设置主电子邮件地址并更改密码)会重新签署。如果您执行这些操作之一,并且用户在很长的时间内签名以前,动作失败并投掷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.");
            }
        });

但是,从用户那里获得凭据是非平凡的,因为我允许使用Google,电子邮件,Facebook和电话号码登录。例如,使用电话号码登录要求将文本发送到电话。这不仅需要警报对话框,要索要密码。

在Github上,几个月前就可以合并添加重新验证构建器,但是我在最新的Firebaseui版本中找不到此功能。诸如AuthUI.createReauthIntentBuilder()之类的东西将是完美的。

用Android上的firebase重新认证用户的最佳方法是什么?我可以使用AuthUI.createSignInIntent(),还是可以实现我自己的重新授权对话框?

当前使用:firebaseui auth 3.1.2

mUser.updateEmail(cek_email).addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
       if (task.isSuccessful()){
          Toast.makeText(getActivity(), "succes", Toast.LENGTH_SHORT).show();
       }
    }
});

使用方法updateEmail

相关内容

  • 没有找到相关文章

最新更新