У меня следующее правило базы данных:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isAdmin() {
return get(/databases/$(database)/documents/administrators/$(request.auth.uid)).data.admin == true;
}
match /users/{userId}/{document=**} {
allow read: if request.auth.uid != null;
allow write: if request.auth.uid == userId;
}
match /administrators/{document=**} {
allow read, write: if isAdmin();
}
match /projects/{project} {
function getRole(rsc) {
return rsc.data.members[request.auth.uid];
}
allow create: if request.auth.uid != null;
allow read: if request.auth.uid != null && ( getRole(resource) == 'owner' || getRole(resource) == 'participant' );
allow write: if request.auth.uid != null && ( getRole(resource) == 'owner' );
}
match /statuses/{document=**} {
allow read: if request.auth.uid != null;
allow write: if isAdmin();
}
}
}
Когда я тестирую чтение документа коллекции проектов с аутентифицированным userId, все в порядке. Когда я пытаюсь прочитать ту же коллекцию с помощью AngularFire, я получаю сообщение об ошибке FirebaseError: Отсутствуют или недостаточны разрешения.
this.projectsCollection = this.afs.collection<Project>('/projects', ref =>
ref.orderBy('projectId'));
this.projects = this.projectsCollection.valueChanges();
this.projects.subscribe(data => {
this.isLoading = false;
}, error => {
this.isLoading = false;
console.log(error);
})
Не могли бы вы помочь мне определить ошибку? Спасибо