Android FirebaseUI 身份验证 - 如何重新进行身份验证?

Eve*_*lyn 5 android firebase firebase-authentication firebaseui

相关问题:Firebase Auth UI 如何处理重新身份验证? (此问题针对iOS,未解决)

我想允许用户在 Android 上使用 FirebaseUI 更新他们的电子邮件/密码/等。

根据指南,“插入式”用户界面提供:

帐户管理- 用于处理帐户管理任务的流程,例如帐户创建和密码重置。

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

但是,从用户那里获取凭据并非易事,因为我允许使用 Google、电子邮件、Facebook 和电话号码登录。例如,使用电话号码登录需要向电话发送文本。这需要的不仅仅是一个要求输入密码的警告对话框。

在 Github 上,几个月前有一个用于添加重新身份验证构建器的合并,但我一直无法在最新的 FirebaseUI 版本中找到此功能。像AuthUI.createReauthIntentBuilder()这样的东西就完美了。

在 Android 上使用 Firebase 重新验证用户身份的最佳方法是什么? 我可以使用AuthUI.createSignInIntent(),还是实现我自己的重新身份验证对话框真的是唯一的方法?

当前使用:FirebaseUI Auth 3.1.2

小智 -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();

       }
    }
});
Run Code Online (Sandbox Code Playgroud)

使用方法updateEmail