Я установил правило чтения в своем пожарном хранилище, и оно прекрасно работает, когда выполняется получение одного документа по идентификатору, но завершается ошибкой FirebaseError: Missing or insufficient permissions.
при получении коллекции.
Кажется,что это подстановочный знак в пути, который не связывается правильно при запросе коллекции.Я свелся к минимальному примеру, который, как я логически не думаю, должен был пропустить разрешение, но это так.Это выглядит следующим образом:
Данные (отформатированные, но, конечно, упорядоченные в коллекции / domument):
"items": { // collection "items"
"item1" : { // document "item1"
"name": "first item" // just dome dummy data
}
}
правила:
service cloud.firestore {
match /databases/{database}/documents {
match /items/{itemId} {
allow read: if itemId != null;
}
}
}
Код (машинопись) Я использую для доступа к базе данных
// This line works fine, returns the document
firebase.firestore().collection("/items").doc("item1").get()
// This line gets a "FirebaseError: Missing or insufficient permissions." error
firebase.firestore().collection("/items").get()
Я пытался изменить правило на
allow read: if itemId != null || itemId == null;
Что по логике должно быть всегда верно.Тем не менее, результаты все те же, что позволяет мне полагать, что есть некоторые проблемы с привязкой к шаблону itemId
.
Так же, как проверка работоспособности, я также изменил правило на
allow read: if true;
А теперь и get()
в коллекции, и в документе работает нормально (как и ожидалось), без каких-либо ошибок разрешения.
Итак, я что-то здесь упускаю, или это ошибка в firestore ??