android - Flutter:如何获取 Firebase 身份验证凭据以更新电子邮件和密码

标签 android firebase flutter firebase-authentication

所以,在我的 flutter 应用程序中,我正在尝试添加更改电子邮件的功能。

我使用了 userData.updateEmail(email) 方法,但它给出了这个错误:

未处理的异常:PlatformException(ERROR_REQUIRES_RECENT_LOGIN,此操作很敏感,需要最近的身份验证。重试此请求之前请重新登录。,null)

在网上搜索解决方案时我知道,我需要通过这种方法重新验证用户:
userData.reauthenticateWithCredential(凭据)

但是我找不到将凭据传递给 reauthenticateWithCredential 方法的方法。

一些代码 fragment (我觉得它们是不必要的):

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: '')

这两种方法都会返回您要查找的内容。

关于android - Flutter:如何获取 Firebase 身份验证凭据以更新电子邮件和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58653551/

相关文章:

firebase - 获取请求具有无效的身份验证凭据错误 FCM

swift - 数据库不可用使用对象构造 FIRDatabase swift

flutter - 如何在 Flutter 中设计这个自定义的 widget 形状

list - Flutter未处理的异常: type 'Future<Group>' is not a subtype of type 'Group'

android - Android 上的 Firebase 突然无法正常工作

java - 其他用户如何使用我的 GCM 应用程序?

android - 无法解析 : firebase-messaging-15. 0.0

dart - 如何让 FAB 更宽

iphone - 短信关键词 : Geo

android - 在 1 个 fragment 中使用具有 2 个不同 View 的 ButterKnife 库