我创建了一个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"
}
}
}
是否需要进行某种过滤或者我是否错误地形成了访问规则?
答案 0 :(得分:1)
您不能将Firebase查询/安全规则用作过滤器。来自Firebase documentation on security rules:
规则以原子方式应用。这意味着如果在该位置或授予访问权限的父位置没有规则,则读取或写入操作会立即失败。即使每个子路径都可访问,在父位置读取也会完全失败。
由于您未在data
级别授予读取权限,因此您的查询(可能从data
开始)将失败。