Ios 如何将用户注册限制为Firebase中的特定域?

Ios 如何将用户注册限制为Firebase中的特定域?,ios,firebase,firebase-authentication,Ios,Firebase,Firebase Authentication,我有一个iOS应用程序,我想限制对它的访问,使它只对来自特定电子邮件域的用户可用。 该应用程序要求用户使用其谷歌帐户登录。 我在网上找到了各种建议添加的答案 ".read": "auth.token.email.endsWith('gmail.com')" 但这似乎不会在登录页面中返回错误,但只有当相关用户尝试访问数据库时才会返回错误。有什么建议吗?由于所需的电子邮件域是@gmail.com,您只需在Firebase控制台中禁用电子邮件和密码,并启用Google登录方法即可。因此,用户登录您的

我有一个iOS应用程序,我想限制对它的访问,使它只对来自特定电子邮件域的用户可用。 该应用程序要求用户使用其谷歌帐户登录。 我在网上找到了各种建议添加的答案

".read": "auth.token.email.endsWith('gmail.com')"

但这似乎不会在登录页面中返回错误,但只有当相关用户尝试访问数据库时才会返回错误。有什么建议吗?

由于所需的电子邮件域是@gmail.com,您只需在Firebase控制台中禁用电子邮件和密码,并启用Google登录方法即可。因此,用户登录您的应用程序的唯一方式是使用谷歌帐户


包括电子邮件和密码注册选项,只需检查应用程序中的域即可。这将是对电子邮件地址的简单字符串比较测试


或者只是启动一个服务器,你将发送电子邮件到该服务器进行验证。这样,您就不必在每次添加额外域时都推出新的更新。您可以尝试看看是否有帮助,而不是启动新服务器。

您必须强制执行该操作。您可以使用多个工具来执行此操作:

  • 在signInWithCredential解析后,您可以检查该域以及它是否是google.com提供商。如果您允许电子邮件/密码用户,您也需要验证这些用户。如果用户不符合您的条件,请对该用户使用delete API,并向用户发出一个错误,说明他们需要使用特定帐户登录

  • 强制检查您的规则,因为您不能始终信任客户。确保如果用户注册且未被删除,则他/她无法访问数据

  • 使用具有用户创建触发器的Firebase函数。在创建用户时,检查您的条件是否满足,如果不满足,请使用firebase管理模块删除该用户

  • 如果您正在使用iOS的Google登录库获取Google凭据,您可以在Firebase中使用凭据登录并阻止登录尝试之前检查Google用户电子邮件和Google ID令牌

  • 编写自己的清理脚本:如果您正在托管自己的服务器,并且不想使用Firebase功能,则可以运行每日脚本,使用Firebase CLI SDK下载所有用户,然后使用Firebase admin SDK删除所有与您的条件不符的用户