Firebase Firestore安全规则配置:允许admins集合中存在对应UID文档的用户读取权限
完善Firebase Firestore安全规则实现管理员读取权限
没问题,我来帮你搞定这个安全规则的完善。根据你的需求,我们需要确保只有UID在admins集合中存在对应文档的已认证用户,才能读取admins集合的内容,同时保留所有人可写入的设置。
下面是完善后的规则:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /admins/{document=**} { // 保持所有人可执行写入操作的设置 allow write; // 仅允许已认证且UID在admins集合中有对应文档的用户读取 allow read: if request.auth != null && exists(/databases/$(database)/documents/admins/$(request.auth.uid)); } } }
规则细节解释:
request.auth != null:先确保用户处于已认证状态,未登录的用户直接被拒绝读取权限,避免request.auth.uid为空引发的规则错误。exists(/databases/$(database)/documents/admins/$(request.auth.uid)):核心判断逻辑——检查当前登录用户的UID是否在admins集合中存在对应的文档,只有存在匹配文档时才开放读取权限。
额外提醒:
开放allow write给所有人在生产环境中风险较高,建议你根据实际业务需求调整写入权限(比如仅允许特定管理员账号写入),避免恶意用户随意修改admins集合的内容。
内容的提问来源于stack exchange,提问作者lowint
相关产品推荐
相关产品推荐

