Мне удалось установить разрешения для моей базы данных Firestore, логика, лежащая в основе правила, заключается в том, что пользователи должны быть аутентифицированы на и принадлежать определенному домену .
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if isUserAndSignedIn();
}
}
function isUserAndSignedIn(){
return request.auth != null && request.auth.token.email.matches('.*@domain[.]com')
}
}
Правило работает нормально для операций CRUD, как и ожидалось, но не работает для триггеров, в моем случае я получаю следующую ошибку при выполнении триггера (облачная функция):
FirebaseError: Missing or insufficient permissions.
at new FirestoreError (/srv/node_modules/@firebase/firestore/dist/index.node.cjs.js:348:28)
at JsonProtoSerializer.fromRpcStatus (/srv/node_modules/@firebase/firestore/dist/index.node.cjs.js:5385:16)
at JsonProtoSerializer.fromWatchChange (/srv/node_modules/@firebase/firestore/dist/index.node.cjs.js:5883:44)
at PersistentListenStream.onMessage (/srv/node_modules/@firebase/firestore/dist/index.node.cjs.js:14779:43)
at /srv/node_modules/@firebase/firestore/dist/index.node.cjs.js:14708:30
at /srv/node_modules/@firebase/firestore/dist/index.node.cjs.js:14748:28
at /srv/node_modules/@firebase/firestore/dist/index.node.cjs.js:10612:20
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
Любая идея, как я могу решить это в правиле?
как обойти триггер при выполнении правил для базы данных?