Firebase安全规则:允许读取除一个字段之外的任何内容

时间:2013-01-30 01:56:20

标签: firebase

在我的Firebase安全规则中,我希望匿名用户能够读取除一个字段(secret_field)以外的任何内容:

{
  "rules": {
    ".read": true,
    ".write": "auth != null",
    "stuff" : {
      "$stuffID" : {
        "secret_field" : {
           ".read" : "auth != null"
        }
      }
    }
  }
}

但是,在Firebase中,如果secret_field的任何读取规则评估为true,则授予secret field上的读取权限。

有没有办法扭转这种行为? (如果在secret_field的路上的任何读取规则评估为false,则禁止读取访问权限)

1 个答案:

答案 0 :(得分:10)

您无法撤消行为,但您可以通过为公共字段引入“容器”并将.read设置为true来解决此问题。例如:

{
  "rules": {
    "stuff" : {
      "$stuffID" : {
        "public" : {
          ".read": true
        },
        "secret_field" : {
          ".read" : "auth != null"
        }
      }
    }
  }
}

然后所有人都可以访问... / public /下的所有内容,但只有经过身份验证的用户才能访问... / secret_field。