У меня есть объект под названием «Сервис». Это может прочитать любой, но изменения могут быть внесены только владельцем. Мое правило пожарной базы для этого: -
"Service": {
".read": true,
"$uid": {
".write": data.child('owner').val() == auth.uid"
}
}
У службы есть дочерний элемент «владелец», который == для пользовательского интерфейса пользователя при входе через Firebase Auth.
У меня также есть объект User, который может сделать Сервис любимым. Я сохраняю их в пользовательском объекте в виде массива [businessKey: true].
Однако меня также попросили сохранить в объекте службы обратное отношение того, что пользователи одобрили. Таким образом, массив Однако, поскольку пользователь не всегда является владельцем службы, я сталкиваюсь с ошибкой прав доступа. Я пытаюсь написать правила, которые позволяют любому писать одному ребенку, но не другим.
Я пытался ...
"Service": {
".read": true,
"$uid": {
".write": data.child('owner').val() == auth.uid" || data.child('users').val() != root.child('users').val()"
}
}
это позволило бы выполнить запись, если пользователь был владельцем Сервиса, или просто изменил дочерних «пользователей». В результате любой пользователь мог писать что угодно.
Я тоже пробовал
"Service": {
".read": true,
"$uid": {
"$users": {
".write" : true,
},
".write": "data.child('owner').val() == auth.uid"
}
}
полагая, что это всегда позволит писать «пользователям» и любому другому ребенку, если пользователь был владельцем.
Я довольно новичок в firebase, и этот синтаксис правил вообще, поэтому я, вероятно, совершаю явную ошибку! Если что я хочу достичь возможно? что я не так понял?