Я знаю, что есть много похожих сообщений, но мне не удалось найти правильный ответ на мою проблему. Хотя я уверен, что это, вероятно, что-то простое.
Я получаю исключение Permission Denied, когда пытаюсь сделать следующий запрос:
firestore.collection(COLLECTION_RESTAURANT)
.whereArrayContains(KEY_ADMIN_ID, "myUserId")
.get()
.await()
Сущность «Ресторан» содержит массив of UserIds, который я подтвердил, является правильным идентификатором, который я отправляю в моем запросе. У объекта также есть свойство isVisible, для которого установлено значение true для объекта, который я пытаюсь получить.
Сейчас правила записываются следующим образом:
match /databases/{database}/documents {
match /restaurants/{restaurantId} {
function restaurantIsOnline() {
return resource.data.isVisible == true;
}
allow read: if restaurantIsOnline();
allow create: if false;
allow update: if false;
allow delete: if false;
}
}
Когда я меняю правила на прочтите allow read: if true;
, то я получу успешный результат, но я не уверен, что понимаю, почему эта функция не работает.