gpt4 book ai didi

FirebaseUser isEmailVerified 即使在验证电子邮件后也始终返回 false

转载 作者:行者123 更新时间:2023-12-02 02:43:02 25 4
gpt4 key购买 nike

我有一个集中了所有身份验证的静态 AuthProvider 类。

我有以下注册码。

  AuthResult newUser = await auth.createUserWithEmailAndPassword(
email: email, password: password);
if (newUser == null) {
print(
'AuthProvider: empty user is returned from createUserWithEmailAndPassword');
return false;
}
await newUser.user.sendEmailVerification();
return true;

在应用程序上注册后,我收到了一封验证邮件,所以我点击了它。当我下次尝试登录时,isEmailVerified 返回 false。经过一些研究,我认为我应该按如下方式重新加载用户对象:

FirebaseUser user = await auth.currentUser();
await user.reload();
user = await auth.currentUser();

print('${user.isEmailVerified}');

不幸的是,isEmailVerified 仍然返回 false。有谁知道为什么会这样?

最佳答案

直到下一次为用户生成 ID token 时,isEmailVerified 才会更新。

您有几个选项可以完成此操作:

  1. ID token 每 55 分钟自动刷新一次,因此您可以等待它刷新。
  2. 您可以将用户注销,然后让他们重新登录,这也会生成一个具有更新后的 isEmailVerified 值的新 ID token 。
  3. 您可以调用getIdToken(true)在用户上,这会强制它刷新 ID token ,从而获得更新后的 isEmailVerified 值。

关于FirebaseUser isEmailVerified 即使在验证电子邮件后也始终返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63257785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com