为什么 Firebase 电子邮件验证不起作用?

2024-04-21

$("#btn1").on('click', function(e) {
e.preventDefault(); // <== disable form submit

const email = signupForm['signup-email'].value;
const password = signupForm['signup-password'].value;


// sign up the user & add firestore data
const auth = firebase.auth();

const promise = auth.createUserWithEmailAndPassword(email, password);
promise.then(user => {
  user = firebase.auth().currentUser;
  user.sendEmailVerification();
}).catch(error => console.log);

});


$("#btn2").on('click', function(e) {
  e.preventDefault(); // <== disable form submit


  var user = firebase.auth().currentUser;

if (user.emailVerified) {
  // email is verified.
  console.log("email is verified")
} else {
  // email is not verified.
  console.log("email is not verified")
}
  
  });

我希望我的网站在用户输入电子邮件和密码后向用户发送一封电子邮件。

在我的代码中,user.sendEmailVerification();工作正常并且用户收到一封电子邮件。

如果用户验证他的电子邮件并单击 btn2,控制台应该打印“电子邮件已验证”,但这种情况不会发生。控制台总是打印“电子邮件未验证”。我也尝试过firebase.auth().onAuthStateChanged方法,不过是一样的。

var user = firebase.auth().currentUser;
 firebase.auth().onAuthStateChanged(user => {
      if(user.emailVerified){ 
        console.log('email is verified')
       }else{
           console.log('email not verified')
       }
    })

验证电子邮件地址是在带外进行的,通常在同一浏览器的另一个选项卡中或在另一个应用程序中进行。这意味着您的应用程序代码不会立即意识到用户配置文件的更新,但只有在发生以下情况之一时才会意识到:

  1. 他们的 ID 令牌会每小时自动刷新一次。
  2. 当用户注销并再次登录时。
  3. 当您通过调用强制刷新应用程序代码中的 ID 令牌时reload在他们的用户个人资料上 https://firebase.google.com/docs/reference/js/firebase.User#reload.

一旦发生其中任何一种情况,用户配置文件将包含来自服务器的最新信息,包括用户的电子邮件验证状态。

另请参阅:

  • Angular Firebase 电子邮件验证验证后错误 https://stackoverflow.com/questions/54592255/angular-firebase-email-verification-false-after-verify
  • Android Firebase AuthStateListener 电子邮件已验证 https://stackoverflow.com/questions/46580095/android-firebase-authstatelistener-email-verified
  • 我可以在不注销的情况下获取更新的 emailVerified 吗? https://stackoverflow.com/questions/41874910/can-i-get-updated-emailverified-without-logging-out
  • 单击电子邮件验证链接 firebase 后 user.emailVerified 不会更改 https://stackoverflow.com/questions/37900447/user-emailverified-doesnt-change-after-clicking-email-verification-link-firebas
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Firebase 电子邮件验证不起作用? 的相关文章

随机推荐

  • 用于屏幕文本的 OCR(光学字符识别)

    我正在尝试创建一个软件 通过捕获屏幕截图来自动化 PC 然后使用 OCR 光学字符识别 来查找要单击的特定按钮 例如 我已经有了鼠标和键盘控制部分 但现在 我需要 OCR 来处理屏幕截图 我发现 Tesseract OCR 似乎不能很好地处
  • 为什么 Django 中的 Google-Auth(Google Identity) 弹出窗口空白?

    我的 Google 身份验证卡在弹出身份验证流程中 一键式身份验证工作正常 但按钮不行 div div 我点击它 弹出窗口打开 但它仍然空白 没有任何进展
  • SDWebImage 在 swift 中崩溃

    看来如果我在已完成的块中使用 self 它就会崩溃 self imageView sd setImageWithURL MYIMAGEURL placeholderImage nil options SDWebImageOptions Re
  • 如何让主键从1000开始?

    create table tablename id integer unsigned not null AUTO INCREMENT primary key id 我需要主键从1000开始 我正在使用MySQL 如果您的表已经创建为自动增量
  • 左特征向量在 scipy 中没有给出正确的(马尔可夫)平稳概率

    给定以下马尔可夫矩阵 import numpy scipy linalg A numpy array 0 9 0 1 0 15 0 85 平稳概率存在且等于 6 4 通过取矩阵的大幂可以很容易地验证这一点 B A copy for in x
  • Z3:检查模型是否唯一

    Z3 有没有办法证明 表明给定模型是唯一的并且不存在其他解决方案 一个小例子来演示 declare const a1 Int declare const a2 Int declare const a3 Int declare const b
  • asp.net mvc 镜像路径和虚拟目录

    我知道这必须是重复的 但我一直在翻阅大量有关此的信息 但无法使其发挥作用 我正在尝试让一个网站在客户端的服务器上运行 并且他们将该网站安装在虚拟目录中 我本地没有这个设置 所以我在这里盲目飞行 我正在尝试建立一条通往图像的路径 用于 Fac
  • 我应该如何处理Java中非常大的数组?

    我有一个算法 当前分配一个非常大的双精度数组 它经常更新和搜索 数组的大小为 N 2 2 其中 N 是算法运行的行数 我还必须保留整个内容的副本 以用于与算法周围的应用程序相关的目的 当然 这对我的算法可以处理的行数施加了限制 因为我需要应
  • 用于单个测试的 Rails/RSpec 切换缓存

    因此 在我的应用程序中 我可以禁用所有测试的缓存 这将是理想的 但显然有许多遗留测试依赖于缓存的功能 有没有办法为单个 RSpec 测试启用 Rails 缓存 就像是 before each do cache setting Rails c
  • 如何让 Jenkins 在 Maven 2 构建上 --fail-fast?

    我正在尝试使用 Jenkins 构建一个多模块 Maven 项目 当我在命令行使用相同的环境 variables settings xml user 正如 Jenkins 所做的那样 测试失败会导致构建立即失败 Failed tests t
  • 如何从 SQL Server 表中恢复已删除的行?

    我不小心对 WHERE 错误的表运行了 DELETE 命令 条款 我正在使用 SQL Server 2005 有没有办法可以帮助我恢复丢失的数据 可以使用 Apex 恢复工具 我已成功恢复我不小心删除的表行 如果您下载试用版 它将仅恢复第
  • Swagger UI 未在 index.html 页面上显示任何内容

    已更新以下解决方案 感谢下面 Ron 的建议 我稍微修改了我的设置以使用 BeanConfig 而不是 SwaggerConfig 并使其正常工作 为了做到这一点 我必须修改 servlet 并且 这就是我认为缺少的部分 将 BeanCon
  • Spring querydsl 谓词:关系支持

    我有一个与联系人具有一对一关系的客户实体 如果我想获取客户名称 我需要写 client getContact getLastName 我使用 querydsl lib 来过滤 Spring Boot 应用程序中的客户端列表 api clie
  • 将 PNG 从预乘 alpha 转换为传统的 alpha 透明度?

    我在处理一些具有预乘 Alpha 的 PNG 格式的源图像时遇到了很大的困难 因为大多数工具根本无法正确支持它 有没有什么可以将 最佳猜测 转换为更传统的PNG 如果 预乘 alpha 指的是 iOS 的 PNG 衍生品 那么您可以将它们转
  • 如何统计 Redis 流中未读或已确认的消息?

    使用 Redis 5 0 3 假设我们创建一个名为streamy和一个消费群体consumers XGROUP CREATE streamy consumers MKSTREAM 然后向其中添加一些消息 XADD streamy messa
  • 当轴数已知时,X.ravel() 和 X.reshape(s0*s1*s2) 之间的差异

    看到这个answer https stackoverflow com a 28930580 3904031我想知道X的展平视图的创建是否本质上是相同的 只要我知道X中的轴数是3 A X ravel s0 s1 s2 X shape B X
  • Backbone.js 收集抛出错误

    我 作为初学者 正在制作一个小型骨干函数来附加我的链接 为此我使用要分配模型的集合 但集合抛出错误 任何人都可以纠正我的代码吗 function var Model new Backbone Model data name Yahoo hr
  • 工具条(ToolStripDropDownButton)关闭并失去窗口焦点

    我有一个带有 ToolStripDropDownButton 的 ToolStrip 这又会弹出一个带有 DateTimePicker 的 UserControl 当我单击日历上的顶部数字 绿色 时 一切正常 用户控件保持打开状态 当我单击
  • 如何将 Express 部署到 Firebase?

    目前我正在学习express和Firebase 我可以将 Angular 或 React 页面 前端 部署到 Firebase 现在 我正在尝试使用 Express 创建后端 然后我意识到 我不能简单地将其作为另一个项目部署到 Fireba
  • 为什么 Firebase 电子邮件验证不起作用?

    btn1 on click function e e preventDefault lt disable form submit const email signupForm signup email value const passwor