w--*_*w-- 9 firebase firebase-authentication google-cloud-firestore
这是对Firestore权限这个问题的后续跟进
我正在尝试在我的火堆上设置规则
service cloud.firestore {
match /databases/{database}/documents {
match /analysis/{analysis} {
allow read, write: if request.auth.uid == resource.data.owner_uid;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的目标是
.在执行列表操作时,仅返回属于用户的那些文档
b.只有用户拥有的文档才能被该用户读取或写入.
用上面的配置 b.完成了.
我该怎么做才能完成.?
jeb*_*ben 17
请记住,firestore规则不是过滤器,它们是对查询的服务器端验证.您应该始终使您的查询符合您的规则,否则您将获得权限错误.
在您的情况下,您已经制定了规则来强制读取/列出用户拥有的文档.现在您只需使用正确的过滤器进行相应的查询:
const userId = firebase.auth().currentUser.uid
db.collection("analysis").where("owner_uid", "==", userId)
Run Code Online (Sandbox Code Playgroud)
另一件事.根据您当前的规则,您的用户将无法创建新文档,只能编辑现有文档,以下是允许的更新规则:
allow read: if request.auth.uid == resource.data.owner_uid;
allow write: if request.auth.uid == resource.data.owner_uid
|| request.auth.uid == request.resource.data.owner_uid;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |