2015-07-20 36 views
1

我正在创建一个Firebase数据库,我想向我的数据添加规则,但我无法找到正确的方式来访问“规则”中的数据Firebase部分。当我建立了我的默认数据库,父节点下面如何更改Firebase父节点的名称以启用规则

enter image description here

显示该数据默认为随机字母和数字怎么样,我可以改变这些节点的名字,让我访问他们在' Firebase的规则“部分,或者我如何使用目前的配置访问它们?

我曾经试图访问他们像这样:enter image description here

,我也试图像筑巢“消息{}”和“{#messageId}”,但他们都没有内部“规则{}”另一个参考能够读取数据。

感谢您的帮助。

+2

请在以后的任何问题中不要使用图片的文字。相反:从源文件中提取文本并粘贴。它既有助于搜索引擎优化,也可以防止我不得不手动输入问题中的文本到我的答案中。 –

回答

3

要将规则应用于特定节点下的每个孩子,请使用所谓的$变量

所以你的情况:

{ 
    "rules": { 
     "$messageid": { 
      ".read": "data.child('timestamp').val() > (now - 300000)", 
      ".write": true 
     } 
    } 
} 

所以$messageid下,上述规则适用于所有消息。请参阅Firebase documentation on using $ variables

+0

谢谢你试图帮助我。我已经尝试在我的规则中嵌入$ messageid引用,就像你上面显示的那样,我甚至将“.read”和“.write”都更改为true,保留了“规则”和“$ messageid”引用,并且当我运行它仍然告诉我一个模拟器我没有阅读规则。我相信这是因为包含子节点的节点没有被命名为“messageid”是否正确?或者是“messageid”是对父节点的通用引用。 – Roger99

+0

没有。 $变量的名称没有区别,它只是一个变量名。但它必须以一个$开始适用于所有的孩子。 –

+0

另请注意,您不能使用规则来**过滤**数据。整个读取/写入操作成功或失败:https://www.firebase.com/docs/security/guide/securing-data.html#section-filter –

相关问题