如果我启用了身份验证,并且使用登录方法进行身份验证的人是否意味着他仍然可以在浏览器控制台中操作我的数据库?或者只有全球火力暴露?我特意询问了反应js的发展。
如果你设置这样的规则:
{
"rules": {
".read":true ,
".write": true
}
}
它只意味着任何人都可以读写数据库。这并不意味着他们可以访问数据库所在的firebase控制台。并且它并不意味着如果他们使用firebase数据库URL,那么他们可以访问您的数据库 - 他们不能,因为数据库与您的帐户相关联。
只有有权访问您帐户的人才能进入firebase控制台并在控制台中更改规则和/或数据库。
将此作为测试,退出帐户并获取firebase数据库URL并将其输入上面的url
,看看您是否能够访问它。
具有上述规则的示例:如果您的网站中有登录屏幕,那么即使使用上述规则,用户也无法登录,因为在您的代码中您指定他必须注册然后能够登录,如果他的信息在数据库。
让我们说你使用这些规则:
{
"rules": {
".read":auth!=null,
".write": auth!=null
}
}
这意味着在数据库中读取和写入必须对用户进行身份验证才能执行此操作。
这些规则只是确定用户可以做什么。但没有人能够访问您的控制台。
编辑:
如果您使用此:
{
"rules": {
".read": true,
".write": false,
}
}
然后没有人可以写任何东西到数据库,所以例如我想在Android应用程序中添加一个产品,它将被添加到应用程序(图形)但不会被添加到数据库,所以如果我回到该活动我不会看到产品,因为它没有添加到数据库中(因此在从db加载产品列表时不会出现)。