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