You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

打造高安全性Firebase数据库:用户API密钥权限配置问题

解决Firebase数据库用户API密钥的权限问题

我看你现在的问题很清楚:当前的安全规则把用户数据的读取权限只开放给管理员,导致普通用户连自己保存的API密钥都看不了,同时你还希望保持用户只能操作自己数据的隔离性。咱们只需要调整.read规则就能解决这个问题:

修改后的安全规则

{
  "rules": {
    "users": {
      "$userID": {
        ".write": "auth != null && auth.uid === $userID",
        ".read": "auth != null && auth.uid === $userID",
        // 可选:如果要更精细控制到字段级别,可以添加下面的配置
        "APIKEY": {
          ".write": "auth != null && auth.uid === $userID",
          ".read": "auth != null && auth.uid === $userID"
        }
      }
    }
  }
}

规则细节说明

  • 写入权限:保留你原来的逻辑,确保只有已登录且UID和节点$userID匹配的用户,才能修改自己的API密钥,彻底杜绝他人篡改你的数据。
  • 读取权限:把原来仅管理员可读取的限制,改成auth.uid === $userID,这样每个用户只能访问自己节点下的数据——既解决了自己看不到API密钥的问题,又完美实现了用户之间的数据隔离。
  • 字段级权限(可选):如果未来你的用户节点下会新增其他字段,给APIKEY单独设置权限能避免权限混乱,确保核心的密钥数据始终只有用户自己能操作。

验证小技巧

修改完规则后,建议用Firebase控制台的规则模拟器测试:

  • 用普通用户的UID模拟读取自己的users/$userID/APIKEY,应该能正常返回密钥;
  • 用普通用户模拟读取其他用户的节点,应该被拒绝访问;
  • 模拟写入自己的APIKEY,确认能成功保存。

内容的提问来源于stack exchange,提问作者Mr. Blockchain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:36:20