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

Firebase:实时观察电子邮件验证状态

丁德义
2023-03-14

如果用户验证了他的电子邮件,我如何能够实时检查?

我的flow是这样的:

    < li >用户注册 < li >电子邮件已发送 < li >用户看到“请验证您的电子邮件”通知

现在我想:

为此,我需要一种从firebase获取用户数据的方法。通常,您只需使用onAuthStateChanged回调来获取用户数据,但我需要显式获取当前数据。

我该怎么做呢?

共有1个答案

葛阳
2023-03-14

找到办法了!

firebase.auth().currentUser.reload()

将获取当前用户数据。所以我要做的就是:

              this.checkForVerifiedInterval = setInterval(() => {
                firebase.auth()
                  .currentUser
                  .reload()
                  .then(ok => {
                    if (firebase.auth().currentUser.emailVerified) {
                      this.props.history.push("/verification-email-verified")
                      window.Materialize.toast("Email verified.", 3000)
                      clearInterval(this.checkForVerifiedInterval)
                    }
                  })
              }, 1000)
 类似资料:
  • 我在我的应用程序中使用Firebase认证,用户可以使用电子邮件和密码注册,他必须验证电子邮件。 用户收到验证邮件,但当他验证邮件并返回应用程序时,isEmailVerified()始终为false。所以我的应用程序仍然不允许用户使用所有功能,尽管事实上他已经验证了他的电子邮件。 但是如果他们注销并再次登录,isEmailVerified()立即返回true。但是注销用户然后重新登录是不是很好。

  • 我知道要检查用户的电子邮件是否经过验证,我可以使用 然而,我的问题是,每当用户在收件箱上验证他们的电子邮件地址时,我都想观察/收听并重定向到另一个页面。 根据我的测试,onAuthStateChanged在用户登录、更新其配置文件和注销时触发,但在用户验证其收件箱中的电子邮件地址时不会触发。 是否有任何方法可以检测用户何时被验证并自动重定向到另一个页面?

  • null 我需要重新验证用户,最好的方法是什么?在用户登录后,如何切换的状态? 谢谢

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

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

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