Firebase 9.0.0-FirebaseAuthRecentLoginRequiredException并重新验证(AuthCredential)

布洛加德

我正在使用Firebase 9.0.0。

如果用户想更改用户电子邮件或密码,Firebase可以抛出FirebaseAuthRecentLoginRequiredException。

firebaseUser.updateEmail(newEmail).addOnCompleteListener(...

在文档中,在这种情况下声明要调用“ reauthenticate(AuthCredential)”。在OnCompleteListener中,我捕获到异常,但是无法创建EmailAuthCredential。应该怎么办?我从哪里领取EmailAuthCredential?

加藤

看起来这里涵盖

某些安全性敏感的操作(例如删除帐户,设置主电子邮件地址和更改密码)要求用户最近登录。如果执行这些操作之一,并且用户登录时间太久,操作失败,并引发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("[email protected]", "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.");
                // retry changing the password here
            }
        });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章