2

我正在关注Firebase 安全教程

我有这个简单的结构:

 - requests

     - request_id: {...}

     - request_id: {...}

     ...

还有我的安全规则:

{
    "rules": {       
      "requests": {
        ".indexOn": ["id_company_owner", "id_app_user"],

        "$request_id": {
          // only request from the last ten minutes can be read
          ".read": "data.child('timestamp').val() > (now - 600000)",
        }
      }
    }
}

我现在想要的只是让我的请求可读。但是我必须在 $request_id 的内部(而不是外部),但是没有请求是可读的;即使请求具有不到 10 分钟前的时间戳。有人可以解释为什么吗?

4

1 回答 1

1

不查看实际数据很难判断,但 Firebase 安全规则是全有或全无。Firebase 安全规则不会过滤数据。

也就是说,如果您尝试将侦听器附加到/requests,并且由于安全规则而不允许读取单个项目,则它们都无法读取。您需要侦听单个项目或重组数据,以完成此“过滤”行为。

于 2015-01-26T06:39:51.507 回答