【问题标题】:firebase rules not workingfirebase 规则不起作用
【发布时间】:2015-01-25 17:23:50
【问题描述】:

我正在关注Firebase security tutorial

我有这个简单的结构:

 - 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 分钟前的时间戳。有人可以解释为什么吗?

【问题讨论】:

  • “它不起作用”非常广泛。它有什么作用?你期望它做什么?
  • 我想根据每个请求的时间戳使每个请求可读。
  • 结果是没有请求是可读的,即使请求的时间戳少于 10 分钟。

标签: firebase firebase-security rest-firebase


【解决方案1】:

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

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

【讨论】:

  • 我明白,但即使我输入:“.read”:true,在“$request_id”内部,请求连续不可读。只有当我在“requests”中放入:“.read”:true 时它才有效,但我的问题是,我需要将它放在“$request_id”中,因为我需要检查每个请求的每个时间戳。跨度>
  • 我的数据看起来和我之前展示的一模一样,也就是说,我有一个名为“requests”的“集合”,其中的“documents”,每个请求都有一个哈希键。
  • 而奇怪的是,我只是按照官方文档,像这样简单,它不起作用。
猜你喜欢
  • 1970-01-01
  • 2018-01-30
  • 2018-03-12
  • 2017-01-25
  • 2018-11-05
  • 2020-08-24
  • 1970-01-01
相关资源
最近更新 更多