Javascript 电子邮件未经firebase验证

Javascript 电子邮件未经firebase验证,javascript,angular,firebase,firebase-authentication,Javascript,Angular,Firebase,Firebase Authentication,我用的是Angular 9和firebase。当用户注册时,他们会收到一封验证电子邮件,当他们单击该电子邮件时,他们会被带到一个验证屏幕,表示该电子邮件已被验证。但是,当他们登录说电子邮件未经验证时,他们会收到一个错误。页面必须重新加载才能正常工作 onSignup(form: NgForm) { this.submitted = true; if (form.valid) { this.authService.RegisterUser(this.signup.username, thi

我用的是Angular 9和firebase。当用户注册时,他们会收到一封验证电子邮件,当他们单击该电子邮件时,他们会被带到一个验证屏幕,表示该电子邮件已被验证。但是,当他们登录说电子邮件未经验证时,他们会收到一个错误。页面必须重新加载才能正常工作

onSignup(form: NgForm) {
this.submitted = true;

if (form.valid) {

  this.authService.RegisterUser(this.signup.username, this.signup.password)
  .then((res) => {
    // Do something here

    this.authService.SendVerificationMail();
    this.router.navigateByUrl('/email-verification');
  }).catch((error) => {
    window.alert(error.message)
  })

}

}
下面是来自auth服务的发送验证邮件

SendVerificationMail() {
  this.ngFireAuth.onAuthStateChanged(function(user) {
  user.sendEmailVerification();

  });
}

为什么会发生这种情况?我应该怎么做?

您能分享SendVerificationMail方法中发生的情况吗?它是内置的fire base方法。它会发送验证电子邮件。您确定用户再次登录吗?否则,他们可能需要等待长达一个小时的验证会话才能获取更新的验证状态。或者,您可以调用
user.getIdToken(true)
(或
user.reload()
)强制刷新该令牌。我是肯定的。我检查了控制台。用户重新加载仅适用于已登录的用户。如果我刷新页面,它可以正常工作。有没有一种方法可以在不刷新页面的情况下刷新角度组件?SendVerificationMail(){this.ngFireAuth.onAuthStateChanged(函数(用户){user.sendEmailVerification();});}您可以分享SendVerificationMail方法中发生的情况吗?它是内置的fire base方法。它会发送验证电子邮件。您确定用户再次登录吗?否则,他们可能需要等待长达一个小时的验证会话才能获取更新的验证状态。或者,您可以调用
user.getIdToken(true)
(或
user.reload()
)强制刷新该令牌。我是肯定的。我检查了控制台。用户重新加载仅适用于已登录的用户。如果我刷新页面,它可以正常工作。有没有办法在不刷新页面的情况下刷新角度组件?SendVerificationMail(){this.ngFireAuth.onAuthStateChanged(函数(用户){user.sendEmailVerification();});}