在Firebase实时数据库编辑器中强制执行规则

时间:2018-02-16 09:00:30

标签: firebase firebase-realtime-database firebase-security firebase-console

概述

在Firebase中使用实时数据库时,我可以编辑和绕过规则。我知道在某些情况下这是多么方便,但我也想将规则应用于手动提交的数据。

实施例

这是在任何地方禁用写入的最简单的写规则。使用规则模拟器,我无法按预期编写。

Can't Write in Simulator as Expected

但是,即使我保存了规则,我仍然可以在我的数据库中写入

Can Still Write in Editor Unexpectedly

今天是我使用Firebase规则的第一天。我对规则感到困惑,还是没有选择在手动编辑器中禁用旁路规则?

2 个答案:

答案 0 :(得分:2)

您将能够从控制台手动写入数据库(没有选项),但使用上面".write": "false"的规则,这意味着最终用户将无法写入数据库。

手动添加到数据库的人通常是管理员。这就是为什么即使它是write:false它仍将添加到数据库。

但是,如果你有这个:

  Class
     randomid
      Keys:values

然后,将在手机中创建课程的用户无法将数据发送到数据库,因为write:false

即使你有这个:

  {
"rules": {
      ".read": "false",
      ".write": "false",  
   }
 }

您仍然可以在控制台中查看数据,但最终用户无法读取或写入数据库。

答案 1 :(得分:0)

删除最后一个逗号。

{
     "rules": {
         ".read": "false",
         ".write": "false"
     }
}

并发布更改,而不是测试。

注意您无论如何都可以添加值,因为您拥有该数据库并在控制台中使用它。如果您从SDK(Android,iOs,Node等)使用它,您将无法写入数据。