service cloud.firestore {
match /databases/{database}/documents {
match/projects/{project} {
allow read: if
get(/databases/$(database)/documents/projects/$(project)).data.uid ==
request.auth.uid;
allow create: if request.auth.uid == request.resource.data.uid;
allow update, delete: if request.auth.uid == resource.data.uid;
}
}
}
здесь я делаю запросы:
firestoreConnect((props) => {
return ([{ collection: 'projects', where: [["uid", "==", props.auth.uid]] }])
})
Но я получаю ошибку:
Ошибка с прослушивателем профиля: отсутствуют или недостаточно разрешений.
Ошибка: отсутствует или недостаточно разрешений.
в новом FirestoreError (index.cjs.js: 402).
когда я проверяю с помощью симулятора, вводя идентификатор документа в пути, я получаю доступ для чтения.
Я не понимаю, где я не прав. Возможно в запросах.
Когда я изменяю правила на:
allow read : if resource.data.uid == request.auth.uid;
ошибки нет, и отображаются данные.
Почему это происходит, это ошибка или я делаю что-то не так? Я знаю, что правила firebase не являются фильтрами.