如何编写返回端点的所有可访问对象的firebase查询?

时间:2015-08-24 14:59:36

标签: firebase firebase-security

我创建了一个firebase项目,该项目包含用户和数据端点,数据具有一个挂起规则集的作者变量。

规则:

{
    "rules": {
      "data":{
        "$data":{
        ".read":"auth.uid === data.child('author').val()"
        }
      },
      "users": {
        "$uid": {
          ".read":"auth.uid === $uid"
        }
      }
    }
}

我能够分别访问每个对象,但我不知道如何形成一个显示数据下所有可访问对象的查询。

数据结构:

{
  "data" : {
    "45464656" : {
      "answers" : [ 0, 1, 5, 3, 2 ],
      "author" : "twitter:5555"
    },
    "46456456" : {
      "answers" : [ 5, 3, 2, 4, 2 ],
      "author" : "twitter:5555"
    }
  },
  "users" : {
    "twitter:5555" : {
      "name" : "Jhon",
      "regDate" : 6546546546,
      "snmae" : "Boom"
    }
  }
}

是否需要进行某种过滤或者我是否错误地形成了访问规则?

1 个答案:

答案 0 :(得分:1)

您不能将Firebase查询/安全规则用作过滤器。来自Firebase documentation on security rules

  

规则以原子方式应用。这意味着如果在该位置或授予访问权限的父位置没有规则,则读取或写入操作会立即失败。即使每个子路径都可访问,在父位置读取也会完全失败。

由于您未在data级别授予读取权限,因此您的查询(可能从data开始)将失败。