Firebase:在验证时禁用帐户或在启用后发送验证

Firebase: disable account on verification or send verification after enabling

在我正在开发的 Flutter + Firebase 应用程序中,用户创建一个帐户(使用 Firebase Auth)并收到一封验证电子邮件。但是,此应用程序仅适用于 select 人数,因此我以默认情况下禁用新用户且需要由应用程序内管理员启用的方式实现它。事实证明,如果您的帐户被禁用,验证 link 将不起作用,因此新用户需要等待管理员启用他们的帐户才能进行验证。这并不理想,所需的工作流程将是以下之一:

用户创建账户 > 账户被自动禁用 > 管理员启用账户 > 验证邮件已发送(最好) 用户创建帐户 > 发送验证电子邮件 > 帐户在验证时被禁用 > 管理员启用帐户 > 用户收到帐户已启用的通知(由于这最后一步,不太可取)

选项 1 需要在验证帐户后通知某些功能,以便可以将其禁用,但我找不到任何关于这是否可行的文档。选项 2 需要以一些奇怪的方式接管 Firebase Auth 发送的验证电子邮件。我的问题是:选项 1 是否可行?如果不是,如何解决选项 2?

要通过客户端 SDK 或 REST API 验证帐户的电子邮件地址,用户需要登录该帐户。如果您在 Firebase 身份验证中禁用帐户,则用户无法登录该帐户进行验证。

您的选择是:

  1. 要么自己处理整个流程,然后使用 Admin SDK 验证并启用帐户。文档中没有这方面的分步指南。

  2. 或者不在 Firebase 身份验证中禁用帐户,而是只允许用户在验证帐户后使用该应用程序并访问数据。

第二个选项是迄今为止最常见的,因为您基本上只是将流程的身份验证部分(用户证明其凭据)与授权部分(用户获得对应用程序及其数据的访问权限)分开。