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)。
当我检查使用模拟器在路径中输入文档 ID 时,我获得了读取权限。我没有得到我错的地方。也许在查询中。
当我将规则更改为:
allow read : if resource.data.uid == request.auth.uid;
没有错误,并显示数据。
为什么它发生是错误还是我做错了什么?我知道firebase规则不是过滤器。