Я работаю над приложением Angular, используя Firestore, здесь у меня есть функция бронирования.Я хочу, чтобы пользователи публично читали и писали в бронирования, если в одном из документов есть reference_no
.
Вот как структурирован мой документ:
Это мои текущие правила безопасности:
service cloud.firestore {
match /databases/{database}/documents {
match /jobs/{job} {
allow read, write: if request.resource.data.property.reference_no == resource.data.property.reference_no;
}
match /{document=**} {
allow read, write: if isSignedInUser();
}
//functions
function isSignedInUser(){
return request.auth.uid != null;
}
}
}
Вот как я запрашиваю это:
findByReferenceNo(reference_no): Observable < any > {
return this.afs
.collection(this.jobsCollection, ref => ref.where('property.reference_no', '==', reference_no))
.snapshotChanges()
.pipe(
map((actions) => {
return actions.map((snapshot) => {
const data = snapshot.payload.doc.data();
const id = snapshot.payload.doc.id;
return {
id,
...data
};
});
})
);
}
Но не уверен, почему я получаю: Error: Missing or insufficient permissions.
Примечание: я не вошел в систему при доступе к этому.