FirebaseUser密码未在android中通过updatePassword()方法更新



我正在尝试使用Firebase身份验证更新或重置Android应用程序中的用户密码。为此,我使用了FirebaseUser类提供的updatePassword((方法,但它在addOnFailureListener((中抛出了代码,我不知道为什么。请帮帮我。我已经提供了更新密码的代码如下:

updatePasswordButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String newPassword = enterPasswordEditText.getText().toString().trim();
String confirmPassword = confirmPasswordEditText.getText().toString().trim();
if (!newPassword.equals(confirmPassword)) {
Toast.makeText(EditProfileActivity.this, "Passwords don't match!", Toast.LENGTH_SHORT)
.show();
} else {
//Updating password
firebaseUser.updatePassword(newPassword)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
Toast.makeText(EditProfileActivity.this, "Password changed successfully", Toast.LENGTH_SHORT)
.show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(EditProfileActivity.this, "Error in changing password", Toast.LENGTH_SHORT)
.show();
}
});
}
}
});

您得到以下错误:

更改密码时出错:此操作是敏感的,需要最近的身份验证。在重试此请求之前再次登录

因为更改密码被认为是一项敏感操作。这意味着,为了执行该操作,Firebase要求用户最近登录。

如果用户最近没有登录,也就是说已经过了5分钟,当您尝试执行这样一个敏感的操作时,Firebase会抛出一个异常,其中包含上面的错误消息。

对于这种情况,最简单的解决方案是要求用户重新输入凭据并重试该操作。

以下是FirebaseAuthRecentLoginRequiredException的官方文档。

最新更新