Sco*_*mas 5 firebase firebase-security
所以我想编写一个安全规则来禁止写入,如果子节点与之前的节点不同.例如,想象一种情况,您希望节点在创建时只能写入,但之后永远不可写.鉴于此要求,最明显的解决方案似乎是验证新数据是否等于旧数据.
可悲的是,这不起作用:
".write": "data.child('someNode').val() === newData.child('someNode').val()"
Run Code Online (Sandbox Code Playgroud)
也不是一种更复杂的方法,我尝试将对象转换为字符串:
".write": "!data.exists() || (data.child('someNode').val() + '') === (newData.child('someNode').val() + '')"
Run Code Online (Sandbox Code Playgroud)
这种用例有什么方法可以支持吗?
重要说明: someNode 上的值必须是一个对象,不能只是一个字符串或其他原语.在原语的情况下,这些方法中的任何一种都可以正常工作.
Firebase的安全规则不支持比较JSON片段.您必须比较规则中的每个叶节点以测试相等性.
例如
".validate": "
data.child('someNode/username').val() == newData.child('someNode/username').val()
&& data.child('someNode/displayName').val() == newData.child('someNode/displayName').val()"
"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |