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

Ionic 3 firebase不显示电子邮件已验证

能修谨
2023-03-14

在使用firebase开发电子邮件验证期间,我遇到了一个问题。

每当我尝试验证电子邮件地址时,我都无法获得用户电子邮件地址已验证的信息。

我有一个这样的代码:

constructor(private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
}

ionViewWillEnter() {
  this.afAuth.auth.onAuthStateChanged(user => {
    if (user && user.emailVerified) {
      this.navCtrl.setRoot(ShoppingListPage);
    }
  });
}

proceedButtonHandler() {
  this.afAuth.auth.onAuthStateChanged(user => {
    if (user && user.emailVerified) {
      this.navCtrl.setRoot(ShoppingListPage);
    }
  });
}

但在我验证了电子邮件地址并运行了proceedButtonHandler函数之后,在user。emailVerified字段我总是得到“false”结果,除非我刷新页面。

知道用户的电子邮件当前是否经过验证的正确方法是什么?是否有任何方法可以观察“emailVerated”字段的更改并将用户重定向到另一个页面而无需单击按钮?(在“ion ViewWillEnter”功能中尝试这样做)

共有1个答案

长孙和悦
2023-03-14

如果通过电子邮件验证链接在带外验证用户电子邮件,您需要在验证后在客户端上做两件事:

  1. 调用currentUser.reload。这将更新用户的emailVerated属性。
  2. 调用currentUser.getIdToken(true)强制令牌刷新,或者等待令牌刷新并自动拾取更改。这是令牌上的email_verified属性更新所必需的。

Firebase现在允许你在电子邮件验证后返回应用程序。下面是一个通过web客户端的例子:https://firebase . Google . com/docs/auth/web/passing-state-in-email-actions

当您从此类操作返回应用程序以重新加载用户/令牌时,您可以使用它,因为您知道用户刚刚验证了他们的电子邮件。上面还允许您在流中传递状态。

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

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

  • 当我尝试发送电子邮件意图时,无论我是否使用意图。ACTION\u发送或操作。发送并使用Sony Xperia Active电子邮件客户端,主题和收件人显示良好,但正文为空,只有客户端粘贴的标准注释除外。在我的三星Galaxy Note 2上,同样的代码也很有魅力。

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

  • 问题内容: 我有这个EditText定义: 注意,EditText具有使用电子邮件地址规范定义的inputType。Android是否内置任何可验证电子邮件地址输入类型的内容,还是都必须手动完成?它允许我输入无效数据,所以我对它的用途感到好奇。 谢谢。 问题答案: 在这里,通过输入电子邮件类型,您可以将电子邮件类型的键盘设置为“ @”和“。”。关键字将显示在键盘上。 更好的解决方案是通过以下功能比

  • 我是Firebase的菜鸟。我要求一种设置电子邮件验证的分步指南。 目前,我的应用程序使用基本电子邮件密码登录。我希望对用户进行验证,以便根据用户的电子邮件验证属性隐藏内容。我正在调用.sendEmailVerification(),它会发送到当前用户的电子邮件,但是,每当我单击电子邮件中的链接时,它都说该链接已过期或有人已使用它,这也不会更改属性。我怀疑这与api管理器有关。我目前已将我的网站托