Я тестирую запросы подколлекции, развернутые из моего безсерверного углового приложения. У меня есть пользователь верхнего уровня коллекции lvl (2 вложенных документа) с вложенным секретом коллекции, каждый из которых содержит индексированный документ contact_details (для обоих пользователей)
Для правил пожарного депо я использую
rules_version = '2';
match /databases/{database}/documents {
match /user/{path=**}/secret/{secret_id} {
allow read: if true;
}
}
И на моем угловом сервере без сервераклиент Я использую AngularFirestore для запроса секрета подколлекции следующим образом:
this.firestore.collectionGroup('secret').get().subscribe(
(sec) => { sec.forEach(el => console.log(el.data())) },
(error) => { console.error(error) }
);
Мое ожидаемое поведение - извлечь все документы из секрета подколлекции, вложенного в два пользовательских документа. Вывод ошибки, который я получаю из оператора console.error, выглядит следующим образом:
FirebaseError: "Missing or insufficient permissions."
FirestoreError index.cjs.js:350
fromRpcStatus index.cjs.js:15441
fromWatchChange index.cjs.js:15954
onMessage index.cjs.js:11877
startStream index.cjs.js:11806
getCloseGuardedDispatcher index.cjs.js:11846
newTail index.cjs.js:1688
invoke zone-evergreen.js:359
run zone-evergreen.js:124
scheduleResolveOrReject zone-evergreen.js:855
invokeTask zone-evergreen.js:391
runTask zone-evergreen.js:168
drainMicroTaskQueue zone-evergreen.js:559
invokeTask zone-evergreen.js:469
invokeTask zone-evergreen.js:1603
globalZoneAwareCallback zone-evergreen.js:1629
В симуляторе правил firestore, который я уже успешно попытался сделать запрос:
get /user/(placeholder)/secret/contact_details
Также я протестировал запросы подколлекциис установленным привилегированным сервером (node.js), который работал как ожидалось. Я предполагаю, что мои правила безопасности отключены, но я не могу понять, в чем именно заключается проблема, так как я изменил правила пожарного депо на основе документации. Я ценю любую помощь!