所以我想编写一个安全规则来禁止写入,如果子节点与之前的节点不同。例如。想象一种情况,你希望节点只能在创建时写入,但从此不会。鉴于此要求,最明显的解决方案似乎是验证新数据是否等于旧数据。
可悲的是,这不起作用:
".write": "data.child('someNode').val() === newData.child('someNode').val()"
我尝试将对象转换为字符串时,也不是更复杂的方法:
".write": "!data.exists() || (data.child('someNode').val() + '') === (newData.child('someNode').val() + '')"
是否可以支持此用例?
重要说明: someNode 的值是一个对象,不能只是一个字符串或其他原语。在原语的情况下,这些方法中的任何一种都可以正常工作。