".write": "auth!=null && (
(
newData.val() != data.val() &&
newData.child('id').val() === auth.uid
)
|| !data.exists()
)"
我正在使用该模式{id: {id: id}}
更新一个列表元素,并将id子对象与auth.uid
进行比较。由于某种原因,该行返回的权限被拒绝。
答案 0 :(得分:1)
newData实际上包装了所有正在侦听的对象,而不仅仅是包装已更改的“新数据”。所以我需要更深一层地看:
"chats": {
"$chat": {
".write": "auth!=null && ((newData.val() != data.val() && newData.child('users').child(auth.uid).exists()) || !data.exists())"
}
}