我已经使用firebase.auth() . signInWithEmailAndPassword创建了一些用户,并希望立即停止signUp,但保持signIn工作 . 我尝试了一些关于用户的规则,甚至根本不再写入firebase . 但是仍然可以进行注册 . 在控制台中禁用电子邮件/密码也会禁用登录 .
{
"rules": {
".read": true,
".write": false,
}
}
有关如何将安全规则应用于Firebase 3中的用户的任何想法?
2 回答
好吧,问题被问到了几天,但也许这对那些仍然想知道答案的人有帮助,我们仍然不能简单地禁用新的帐户创建,但我们可以使用Firebase功能:
以下是使用 Cloud 功能自动禁用新用户的解决方法 .
请记住,使用Firebase Web控制台或第三方创建用户时会触发此功能 . 所以你必须创建,等待该功能,然后启用用户 .
Firebase明确地将身份验证(登录到应用程序)与授权(从应用程序访问数据库或存储资源)分开 .
您无法在不禁用所有用户登录的情况下禁用注册,这不是您想要的 .
在典型情况下,开发人员将根据经过身份验证的用户开始保护数据库/文件访问 . 请参阅database security和storage security文档中的相关部分 .
如果您的用例是您只希望特定用户具有访问权限,则您可能希望实现白名单:允许访问数据的用户列表 .
您可以在安全规则中执行此操作:
或者(更好)将允许的uid列表放在数据库中并引用安全规则中的uid:
然后: