如何使用指定用户凭据在Firebase中安全创建数据库记录?
Firebase Realtime Database 仅指定UID写入的安全规则配置方案
不安全的测试模式规则(生产环境禁用)
网上常见的测试模式规则会放开所有读写权限,任何人都可以随意读写你的数据库,存在数据泄露、恶意篡改/写入的风险,规则示例如下:
{ "rules": { ".read": true, ".write": true } }
安全规则配置步骤
- 首先在Firebase控制台「Authentication」-「用户」列表中,找到你自己凭据对应的账号UID,复制该字符串备用
- 进入Realtime Database的「规则」配置页,替换为如下规则:
{ "rules": { // 此处替换为你存储联系表单记录的节点名称 "contact_records": { // 禁止公开读取表单提交数据,如需后台查询可同步添加读取权限校验 ".read": "auth.uid === '替换为你复制的实际UID'", // 仅匹配到指定UID的登录用户可以写入数据 ".write": "auth.uid === '替换为你复制的实际UID'" }, // 其余节点的权限可根据自身需求补充配置,默认无匹配规则时会拒绝所有请求 ".read": false, ".write": false } }
验证注意事项
- 规则配置完成后,可使用控制台自带的规则测试工具,模拟不同登录状态、不同UID的写入请求,验证权限控制是否符合预期
- 如果你的联系表单是面向未登录用户开放提交的场景,不要直接在前端集成数据库写入逻辑,建议搭配Firebase云函数做中间层处理表单提交,避免恶意刷量
- 确认UID完全正确后再保存规则,避免配置错误导致你自己也无法写入数据
内容的提问来源于stack exchange,提问作者Sudhanshu Shekhar
相关产品推荐
相关产品推荐

