如何设置限制某人访问子节点表单机器的规则? 例如 : 00041802000001,00041802000002,00041802000003,...等
我的规则是:
{
"rules": {
"machine":{
"$machine":{
".read": "data.child('giftIn').val() >10"
}
}
}
}
但它不起作用,许可问题发生了:
/ machine的监听器失败:permission_denied
什么规则可以让某人只访问00041802000002?
答案 0 :(得分:1)
您授予访问每台特定个人计算机的权限。这意味着您可以在知道其密钥后访问每台计算机(例如00041802000002
)。
但您正在尝试阅读所有计算机:/machine
。由于您没有读取权限,因此拒绝阅读。
您需要授予读取所有计算机的权限,或者读取特定计算机。
如果您期望阅读/machine
会过滤子节点以仅返回giftIn
值大于10的子节点,那么您很遗憾会感到失望。 Firebase安全规则不能用于过滤数据。这样做的原因是,当您附加侦听器而不是每个子节点时,都会强制执行规则。
如果规则无法过滤数据这一事实对您来说是新的,我建议您研究documentation section on it以及众多previous questions on the topic中的一些。