如何配置Firebase Realtime Rules仅Admins节点用户可写入指定节点
规则修改方案
你只需要调整PrivateWork、Work、videos三个节点的.write权限规则,新增管理员身份校验逻辑即可,其余原有规则可保持不变。
校验逻辑为:判断当前登录用户的UID是否存在于Admins节点下,仅存在时允许写入操作。
修改后完整规则
{ "rules": { "Admins": { ".read": true, ".write": false }, "Users": { ".read": true, ".write": true, ".validate": "newData.hasChildren(['name', 'phoneNumber', 'uid'])", "name": {".validate": true}, "phoneNumber": {".validate": true}, "uid": {".validate": true}, "$other": {".validate": false} }, "PrivateWork": { ".read": "auth.uid != null", ".write": "auth.uid != null && root.child('Admins').child(auth.uid).exists()" }, "Likes": { ".read": "auth.uid != null", ".write": "auth.uid != null" }, "Work": { ".read": "auth.uid != null", ".write": "auth.uid != null && root.child('Admins').child(auth.uid).exists()" }, "videos": { ".read": "auth.uid != null", ".write": "auth.uid != null && root.child('Admins').child(auth.uid).exists()" } } }
注意事项
- 你需要确保
Admins节点的存储结构为Admins/{管理员UID}的形式,比如管理员UID为abc123,你需要在Admins节点下新增键为abc123的子节点(值可以随意填写,规则仅校验该UID对应的节点是否存在)。
内容的提问来源于stack exchange,提问作者MiniDev99
相关产品推荐
相关产品推荐

