Firebase 安全规则保护列表和 public 对象

Firebase security rules protect list and public object

我有一个服务器列表,只有当您有键值时,这些服务器才具有 public 访问权限。

基本上如果用户有对象键,那么他可以检索完整的子对象。但不应允许他访问对象列表。

对象示例

{
    "servers": { // list of server

        // list should not be access directly - no anonymous access

        "key1": {  // this object can be access anonymously, if user knows the key
            "name": "linux"
            //...
        },

        "key2": {
            "name": "ubuntu"
        }
    }
}

如何在 firebase 中为上述对象制定这样的安全规则?

简单:

{
  "rules": {
    ".read": false,
    "servers": {
      "$serverid": {
        ".read": true
      }
    }
  }
}

因为根是不可读的,所以/servers也是不可读的,只有当你有一个/servers/$serverid时读操作才有效。

Firebase guide on Security & Rules.

涵盖了这个主题和许多类似的主题