Har*_*esh 0 firebase firebase-security google-cloud-firestore
我正在通过官方文档学习安全规则,但我无法使其工作.
在我的users文档集合中user有一些地图值,其中一个是role: "guest".角色价值可以"guest" or "superAdmin"
我想要/users只访问role == "superAdmin"
这是我试过的
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read: if get(/databases/$(database)/documents/users/$(userId)).data.role == "superAdmin";
}
}
}
Run Code Online (Sandbox Code Playgroud)
登录时收到错误 superAdmin
错误错误:权限丢失或不足.
我相信我正确地遵循了文档.并在SO中找到了一个类似的问题,其中说明了一些特定于评估查询中嵌套字段的错误.但我没有嵌套查询.我在这做错什么吗?
这是我的火堆外观
请帮忙.
而不是使用get(),因为您在读取的位置获取文档,只需使用它resource(在该位置的预取文档)进行寻址:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read: if resource.data.role == "superAdmin";
}
}
}
Run Code Online (Sandbox Code Playgroud)
仅get()在您要访问其他集合以获取数据时使用.
| 归档时间: |
|
| 查看次数: |
1490 次 |
| 最近记录: |