android - Flutter:如何获取 Firebase 身份验证凭据以更新电子邮件和密码
问题描述
所以,在我的颤振应用程序中,我正在尝试添加更改电子邮件的功能。
我使用了 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);
}
注意:我同时使用谷歌登录和密码电子邮件登录。
解决方案
我也遇到了这个问题,我找到了解决方案。您可以像这样获取正在使用的提供者的 AuthCredential:
EmailAuthProvider.getCredential(email: 'email', password: 'password');
和
GoogleAuthProvider.getCredential(idToken: '', accessToken: '')
这两种方法都会返回您要查找的内容。
推荐阅读
- c++ - 为什么非专业模板胜过部分专业模板?
- javascript - Uncaught TypeError: Object(...) is not a function at handleChange
- julia - 数据框在excel文件中的空行之前被剪切
- git - 您的分支和 'origin/integration/phone_number_change' 已经分道扬镳
- encryption - TLS 1.2 密码套件错误,Schannel 事件 ID 36874 和 36888
- excel - Excel。1 个特定列的特殊数字分隔符格式,整个文档没有
- r - R rowSums() 正在生成一个奇怪的输出。我究竟做错了什么?
- amazon-web-services - 为什么我无法在 Tableau Server 上刷新我的雪花数据提取?
- sql-server - 查询保留最新的非零值
- api - 有没有一种方法可以让 Binance API 市场购买订单本身决定最大可购买数量并且我不必计算它?