当前位置: 首页 > 知识库问答 >
问题:

Firebase电子邮件验证工作不正常

包和泰
2023-03-14

我所拥有的

我在我的应用程序中使用Firebase认证,用户可以使用电子邮件和密码注册。如果用户没有验证他们的电子邮件,我会禁用一些功能,直到他们验证他们的电子邮件。

我还有一个按钮来显式触发验证邮件,它只是调用,sendeMailVerification()。它工作完美,验证邮件总是发送。

用户收到验证邮件,但当他/她验证邮件并返回应用程序时,isemailverified()始终为false。所以我的应用程序仍然不允许用户使用所有功能,尽管事实上他/她已经验证了他们的电子邮件。

但是如果他们注销并再次登录,isemailverified()立即返回true。但是注销用户然后重新登录是不是很好。

是Firebase的bug吗?还是我做错了什么?

共有1个答案

黎承颜
2023-03-14

嘿,我知道这是一个相当旧的线程,但是是什么为我解决了这个问题firauth.auth()?.currentuser.reload(完成:{(错误)in...})

对任何面临这个问题的人来说。我使用的是最新的Firebase 10.0.1版本

自从我发布了我的解决方案后,Firebase已经更改了它们的函数名称。

请注意,对当前用户状态的所有更改都可以通过添加StatedIdChangeListener来观察。auth.auth()?.CurrentUser不会立即更新,所以我所做的是将当前用户保存到我自己创建和维护的全局变量中。

Auth.auth().addStateDidChangeListener { (auth, user) in
 // ...
}

每当您调用auth.auth()?.CurrentUser.Reload()时,将通过StatedIdChangeListener传递一个已刷新并准备使用的用户对象。

然后,您可以检查任何更新的数据(即通过电子邮件验证的)

 类似资料:
  • 问题内容: 我检查了用户是否通过电子邮件验证。但是,无论我发送并确认了多少电子邮件,验证状态仍为。检查时我做错什么了吗? 问题答案: 我如何实现此功能的方法是添加一个 带有时间间隔的,它将检查用户是否已通过验证,然后在完成验证后终止计时器。 检查您当前用户状态的功能:

  • 我检查了用户是否通过电子邮件进行验证。但是,无论我发送并确认了多少封电子邮件,验证状态仍然是。我在检查时是否做错了什么?

  • null https://blaproject.page.link?link=https://blaproject-ea9d6.firebaseapp.com//auth/action? 所以我的问题是,为什么这个URL不验证用户的邮件,然后使用continue URL(以及关联的域)来触发app打开呢?它只会触发app打开,而不会验证用户的邮件。 感谢您提供的任何提示,以帮助我理解我不理解的内容

  • 我有一个关于firebase电子邮件验证工作的问题。 案例: 我的用户已登录我的网站(使用设备A)。 他们使用其他浏览器或设备(设备B)创建另一个帐户,但他们使用他已登录的浏览器和设备(设备A)打开电子邮件验证链接。 已经登录的用户(在设备A中)发生了什么?firebase是将它们签出还是只是验证新的电子邮件,但仍然与当前用户签入?

  • 我是Firebase的新手。我需要一种在注册过程中验证电子邮件地址的方法。未经验证,用户不应该自动登录。我可以添加什么代码来检查电子邮件是否经过验证。如果是,用户可以登录。如果不是,他们需要首先登录。请参阅下面的代码

  • 我的电子邮件验证有问题。我的错误是“用户为空”,因此它不会发送验证电子邮件,但会在控制台和My console.firebase.google中显示登录uid。com项目显示已注册的电子邮件。我应该更改什么,以便发送电子邮件,并且在用户验证其电子邮件之前不允许访问?我读过文件,但想不出来。提前谢谢你。