【发布时间】:2020-07-02 17:14:42
【问题描述】:
有没有办法添加一个 firebase 安全规则,以防止根据每个子项中的值读取集合中的某些项? 我的例子: JSON:
orders{
orderA: {
name: x,
company:a
isDeleted: true
}
orderB: {
name: y,
company:a
isDeleted: false
}
}
最好限制用户只能读取 isDeleted === false 的所有订单
我目前的规则(不工作):
"rules": {
"orders": {
".indexOn": "companyId",
".read": "auth !== null && data.child('isDeleted').val() === false",
"$ord": {
".write": etc
}
},...
上述方法不起作用,因为“数据”不代表正确的对象 - 我只能使用“$res”区域内的数据。 如果我删除 "&& data.child('isDeleted').val() === false" 它可以工作,但当然会带回两条记录。
我的请求是这样的,所以 $res 不适用 - 因为我收到的是 companyId 的所有订单
http://mysite.firebase.io/orders?auth="xyz"&orderBy="companyId"&equalTo="a"
是否有可能像这样“检索所有”类型的 REST 调用并通过 firebase 安全规则过滤掉某些值?我是否也可以检索所有内容,然后在将它们返回到前端时将它们过滤掉??
【问题讨论】:
标签: firebase rest firebase-realtime-database firebase-security