Angular Firebase 如何配置安全规则实现用户仅可读写自身数据
针对Angular + Firebase 认证系统的用户级数据权限规则配置
你所使用的教程技术栈为Angular + Firebase Auth + AngularFire,配置仅允许用户读写自有数据的安全规则步骤如下:
- 核心逻辑依赖Firebase Auth登录后为每个用户生成的唯一
uid,你只需要确保存储用户数据时,将对应文档/节点的标识设为用户的uid即可,这一步该教程的认证逻辑已经默认实现。 - 如果你使用的是Firestore数据库,直接在Firebase控制台的Firestore规则页替换为以下配置:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { // 匹配users集合下对应用户uid的独立文档 match /users/{userId} { allow read, write: if request.auth != null && request.auth.uid == userId; } // 匹配用户文档下的所有子集合数据,如订单、收藏等 match /users/{userId}/{document=**} { allow read, write: if request.auth != null && request.auth.uid == userId; } } }
- 如果你使用的是Firebase Realtime Database,替换规则为以下内容:
{ "rules": { "users": { "$userId": { ".read": "auth != null && auth.uid == $userId", ".write": "auth != null && auth.uid == $userId" } } } }
你可以直接沿用教程内的Angular端认证代码,不需要做额外调整,以上规则会自动校验请求用户的身份,拦截非自有数据的读写请求。如果有其他业务集合需要做权限控制,只需要按照相同逻辑,匹配对应集合内的uid字段与request.auth.uid一致即可。
内容的提问来源于stack exchange,提问作者ACDev
相关产品推荐
相关产品推荐

