Raj*_*kad 7 android firebase firebase-authentication flutter
因此,在我的 flutter 应用程序中,我尝试添加更改电子邮件的功能。
我使用了 userData.updateEmail(email) 方法,但它给出了这个错误:
未处理的异常:PlatformException(ERROR_REQUIRES_RECENT_LOGIN,此操作很敏感,需要最近的身份验证。重试此请求之前请重新登录。,null)
在网上寻找解决方案时,我了解到,我需要通过以下方法重新验证用户: userData.reauthenticateWithCredential(credential)
但我找不到一种方法来将凭据传递给 reauthenticateWithCredential 方法。
一些代码片段(尽管我觉得它们是不必要的):
initUserData() async {
FirebaseUser user = await FirebaseAuth.instance.currentUser();
setState(() {
userData = user;
});
}
updateEmail(String value) async {
// value is the email user inputs in a textfield and is validated
userData.updateEmail(value);
}
Run Code Online (Sandbox Code Playgroud)
注意:我同时使用谷歌登录和密码电子邮件登录。
小智 17
有一种重新验证的方法。您只需要获取用户的密码即可调用该方法。
FirebaseUser user = await FirebaseAuth.instance.currentUser();
AuthResult authResult = await user.reauthenticateWithCredential(
EmailAuthProvider.getCredential(
email: user.email,
password: password,
),
);
// Then use the newly re-authenticated user
authResult.user
Run Code Online (Sandbox Code Playgroud)
小智 9
我也遇到了这个问题,并且找到了解决方案。您可以像这样获取您正在使用的提供商的 AuthCredential:
EmailAuthProvider.getCredential(email: 'email', password: 'password');
Run Code Online (Sandbox Code Playgroud)
和
GoogleAuthProvider.getCredential(idToken: '', accessToken: '')
Run Code Online (Sandbox Code Playgroud)
两种方法都会返回您要查找的内容。
| 归档时间: |
|
| 查看次数: |
19992 次 |
| 最近记录: |