Firebase Real Time Database Rule: разрешить редактировать список uid - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь разрешить write для списка uid, используя auth.uid in ['ciAujxIqXQSdaaaaaaaaaa', 'bbb'], но это неправильный синтаксис, как я могу это сделать?

{
     "rules": {
        "orders": {
            ".read": "auth != null",
            ".write":  "(data.child('uid').val() == auth.uid) || auth.uid in ['ciAujxIqXQSdaaaaaaaaaa', 'bbb']",
            ".indexOn": ["negative_epoch"]
        },
        "users": {
                ".read": "auth != null",
                ".write": "auth != null",
        },
     }

}

1 Ответ

1 голос
/ 25 апреля 2020

Нет операции in на языке правил безопасности для базы данных реального времени. Так что вам придется сделать или самостоятельно:

"(data.child('uid').val() == auth.uid) || auth.uid == 'ciAujxIqXQSdaaaaaaaaaa' || auth.uid == 'bbb'"

Я обычно нахожу, что после добавления 2 или 3 идентификаторов UID таким образом я создаю новый список верхнего уровня в базе данных для хранения этих UID:

"admins": {
  "ciAujxIqXQSdaaaaaaaaaa": true,
  "bbb": true
}

А затем проверьте , что список в моих правилах:

"(data.child('uid').val() == auth.uid) || root.child('admins').child(auth.uid).exists()"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...