Я пишу правило безопасности в firebase, чтобы проверить, существует ли запись или существует группа. Я полностью понимаю, что правила безопасности - это не фильтры, и я использую их не как фильтр, а как метрику проверки. Это правило, которое я пытаюсь реализовать ...
"notifications": {
".read": "auth !== null",
".write": "auth !== null",
".indexOn": ["post_ID", "group_ID"],
"$userID": {
"$notifID": {
".validate": "newData.hasChildren(['has-seen', 'end-time', 'time', 'user_ID', 'username']) && $userID !== newData.child('sender_ID').val() && (root.child('groups').child(newData.child('group_ID').val()).exists() || root.child('follower-feed-storage').child(newData.child('post_ID').val()).exists())",
".write": "auth.uid !== $userID && !data.exists()",
}
}
},
Очевидно, что правило должно правильно оценивать условие hasChildren и $ userID! == newData.child ('user_ID'). Val (). Однако, когда он должен вычислить последнее выражение после && и внутри скобки, он будет либо успешным, либо неудачным на основании первого условия внутри скобки и не будет выполнять оператор or или вычислять второе выражение. Очевидно, что я делаю что-то не так с синтаксисом, но я не могу понять это. Любая помощь приветствуется заранее.