Firebase Auth–;emailVerified上的状态更新

Firebase Auth–;emailVerified上的状态更新,firebase,google-cloud-firestore,firebase-authentication,Firebase,Google Cloud Firestore,Firebase Authentication,很长一段时间以来,我忽略了电子邮件/密码注册过程和必要的电子邮件验证,只使用了非常基本的功能开始并在此基础上构建。但现在我已经到了无法避免使用更具生产级别的电子邮件/密码注册流程的地步。目前,我正在使用这些Firebase服务:身份验证(仅限电子邮件/密码)、Firestore和云功能,以及react本机应用程序 当用户成功注册(已登录但未验证电子邮件!)时,在用户验证其电子邮件之前,react本机应用程序不会提供功能。注册后,客户端将立即发送一封带有验证链接的电子邮件(通过默认firebase

很长一段时间以来,我忽略了电子邮件/密码注册过程和必要的电子邮件验证,只使用了非常基本的功能开始并在此基础上构建。但现在我已经到了无法避免使用更具生产级别的电子邮件/密码注册流程的地步。目前,我正在使用这些Firebase服务:身份验证(仅限电子邮件/密码)、Firestore云功能,以及react本机应用程序

当用户成功注册(已登录但未验证电子邮件!)时,在用户验证其电子邮件之前,react本机应用程序不会提供功能。注册后,客户端将立即发送一封带有验证链接的电子邮件(通过默认firebase服务器),用户可以通过单击该链接验证其电子邮件

问题:如何对emailVerified的更改做出适当的反应,或在电子邮件被验证时引发的任何其他事件?

我现在已经找了一整天的工作解决方案。以下是我的方法:

  • 使用您自己的网站,所有验证链接都链接到该网站(尝试了此功能,但在我第一次尝试时无效)
  • 使用电子邮件验证链接中的actionCodeSettings重定向用户并让客户端重新加载其组件
  • 使用云消息传递并将电子邮件验证状态的更改通知客户端
  • 调用云函数(从外部服务器),更新客户端订阅的Firestore中的tmp文档
  • 重新加载()/循环

我感谢所有的评论,有用的链接等

Firebase SDK中有一个方法:isEmailVerified(),它告诉用户是否验证了电子邮件

对于react native,我发现了简单的文档:。在应用程序启动时,您可以检查用户是否验证了电子邮件,然后进行相应的更改


快乐编码

谢谢你的帮助@s_o_m_m_y_e!我读过关于该方法的文章,但在nodejs/web中找不到它。
User
上的属性
emailVerified
不仅在react native firebase中可用,而且在firebase Nodejs SDK中也可用,
Auth
上的
onAuthStateChanged
和另一个观察者-我正在使用此属性,但观察者不会在
emailVerified
更改时启动。通过循环中的
reload()
,可以处理这一点(对许多读取操作)。客户端可能位于前台,用户可以在其pc上打开链接,在这种情况下,简单的应用程序重新加载无法完成此任务。您可以为用户提供某种按钮,用户在验证电子邮件后应单击该按钮。单击该按钮,您可以检查电子邮件是否已验证。(对不起,我不太熟悉react或nodejs,只是给出了一个总体想法:-)实际上,我正是在使用这个想法;)但它只是为开发人员实现的,在我看来,它并不是一个用户友好和减少用户体验的解决方案。谢谢你的评论!我建议你考虑一下,再问一个问题。