Firebase-如何限制子节点中的访问权限?

时间:2018-03-08 09:47:56

标签: firebase firebase-realtime-database firebase-security-rules

如何设置限制某人访问子节点表单机器的规则? 例如 :      00041802000001,00041802000002,00041802000003,...等

我的规则是:

{
  "rules": {
    "machine":{
      "$machine":{
        ".read": "data.child('giftIn').val() >10" 
      }
    }
  }
} 

但它不起作用,许可问题发生了:

  

/ machine的监听器失败:permission_denied

什么规则可以让某人只访问00041802000002?

firebase realtime database

1 个答案:

答案 0 :(得分:1)

您授予访问每台特定个人计算机的权限。这意味着您可以在知道其密钥后访问每台计算机(例如00041802000002)。

但您正在尝试阅读所有计算机:/machine。由于您没有读取权限,因此拒绝阅读。

您需要授予读取所有计算机的权限,或者读取特定计算机。

如果您期望阅读/machine会过滤子节点以仅返回giftIn值大于10的子节点,那么您很遗憾会感到失望。 Firebase安全规则不能用于过滤数据。这样做的原因是,当您附加侦听器而不是每个子节点时,都会强制执行规则。

如果规则无法过滤数据这一事实对您来说是新的,我建议您研究documentation section on it以及众多previous questions on the topic中的一些。