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

时间:2018-05-10 11:25:16

标签: firebase firebase-authentication

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

我的流程是这样的:

  1. 用户注册
  2. 发送电子邮件
  3. 用户看到“请验证您的电子邮件”通知
  4. 现在我想:

    1. setInterval - >检查电子邮件是否已经过验证
    2. 如果验证显示“已验证电子邮件”通知
    3. 为此我需要一个从firebase获取用户数据的方法。 通常你只需使用onAuthStateChanged回调来获取userdata,但我需要显式获取当前数据。

      我该怎么做?

1 个答案:

答案 0 :(得分:0)

找到了办法!

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)