我正在为web应用程序使用firebase,包含Api密钥和其他凭据的配置已打开。我已经编写了防止编写数据库的规则,但我无法阻止他们注册,我已将某些域列入白名单,但除了这些域之外,还可以在创建用户时访问。我正在使用cordova将此Web应用程序转换为Android应用程序和ioS应用程序。有没有办法阻止用户注册。
答案 0 :(得分:1)
那么,你想让一些用户注册,而不是其他用户注册?我还假设你想使用谷歌的内置注册系统。
第一种方法
实现这一目标的最快但可能最难的方法是使用firebase功能提前将一组用户列入白名单。 Firebase功能可以捕获注册请求,如果它与您列入白名单的地址不匹配,则会忽略它。
当然,您可以使用它来执行各种其他功能,就像发送一个允许在短时间内注册的请求一样。通过javascript可以做任何事情。
否则,您将无法创建自己的登录方式。
我认为这是防止他们注册的唯一方法。
第二种方法
如果您想允许注册但不允许访问数据库,您应该能够将规则设置为" auth =(uid)"只允许那些uid写。
同样,使用firebase函数可以实现相同的过程,允许基于你的uid集编写等等。
另一种方法是firebase远程配置条件并实现类似的效果。 (我不建议这样做,因为它可能会创建一个不安全的客户端身份验证,或者检查auth的不必要的步骤。)
我使用的类似的东西是允许完全访问数据库,但使用firebase函数来防止删除。此方法允许用户具有完全访问权限,但我可以随时轻松更改其编写,移动或删除节点的能力。基本上,如果事实证明firebase函数方法最适合您的情况,我可以更新我的响应以包含我的代码中的样本。
第三种方法
firebase的某些用户使用数据库来存储用户及其凭据及其配置文件数据。因此,当用户注册时,它会向数据库添加一个节点,通过简单移动,删除或创建指示其权限的密钥,可以轻松接受或拒绝该节点。
祝你好运。它的功能通常有点隐藏,很难找到。在youtube上观看完整的Google I / O演示文稿可能会很有用,它可以详细解释其广泛的全部功能。它可以找到here。我强烈建议这一点,因为它帮助我更好地理解了这些功能和(说实话)我应该使用firebase的所有方法(但不是)。
答案 1 :(得分:1)