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

Firebase -如何检测/观察Firebase用户何时验证他们的电子邮件,如onAuthStateChanged

濮阳唯
2023-03-14

我知道要检查用户的电子邮件是否经过验证,我可以使用

firebase.auth().onAuthStateChanged((user) => {
    console.log(user["emailVerified"]);
})

然而,我的问题是,每当用户在收件箱上验证他们的电子邮件地址时,我都想观察/收听并重定向到另一个页面。

根据我的测试,onAuthStateChanged在用户登录、更新其配置文件和注销时触发,但在用户验证其收件箱中的电子邮件地址时不会触发。

是否有任何方法可以检测用户何时被验证并自动重定向到另一个页面?

共有3个答案

狄宇
2023-03-14

最后,我检查了用户变量,而不是调用emailVerified(),然后等待其响应

this.authService.afAuth.onAuthStateChanged(function(user) {
  if(user){
    if(user.emailVerified){
      //Verified
    }
  }
}
鱼志诚
2023-03-14

令人遗憾的是firebase没有解决这个问题,我最终在firestore文档上保留了一个emailVerified标志,以便在打开的选项卡之间同步状态。

孙修德
2023-03-14

我设法通过setInterval函数使其工作,该函数每秒检查用户的emailVerated属性,如下所示:

setInterval(function() {
  firebase.auth().currentUser.reload();
  if (firebase.auth().currentUser.emailVerified) {
      console.log("Email Verified!");
      this.navCtrl.setRoot(HomePage);
  }
}, 1000);
 类似资料:
  • 如果用户验证了他的电子邮件,我如何能够实时检查? 我的flow是这样的: < li >用户注册 < li >电子邮件已发送 < li >用户看到“请验证您的电子邮件”通知 现在我想: 为此,我需要一种从firebase获取用户数据的方法。通常,您只需使用onAuthStateChanged回调来获取用户数据,但我需要显式获取当前数据。 我该怎么做呢?

  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

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

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

  • 所以流程会是这样的: 用户通过firebase通过电子邮件和密码登录 如果电子邮件已验证,他们将转到主要活动,否则他们将转到验证电子邮件活动 我想做的是当他们在验证电子邮件活动时,我会在onCreate方法中发送一封验证电子邮件,然后如果电子邮件被验证(在运行时),我会将用户发送到主活动。 我知道检查用户验证电子邮件的功能是否通过 这里的问题是,我如何使用这个功能(或其他功能)来检查用户是否实时验

  • 如果您的电子邮件未经验证,我的登录页面将重定向到另一个页面。这第二页是为了迫使用户验证电子邮件。页面加载后,验证邮件将与以下内容一起发送: 现在用户转到电子邮件并单击验证链接。 我如何在我的代码中设置一个侦听器,在验证电子邮件后启动一个函数??