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

Firebase实时数据库规则级联效应:含无权路径的更新能否通过校验?

Firebase实时数据库权限校验问题解析

原数据库内容

{
  "a1": {
    "b1": {
      "keyb11": "value11"
    },
    "b2": {
      "keyb21": "value21"
    }
  }
}

提交的更新内容

{
  "a1": {
    "b1": {
      "keyb11": "newvalue"
    },
    "b2": {
      "keyb21": "value21"
    }
  }
}

权限校验结果及原因

这个更新会被拦截。

Firebase实时数据库处理完整JSON对象更新时,会将整个提交的对象视为待写入内容——哪怕b2的值和原有数据完全一致,规则校验仍会检查你是否拥有提交对象中所有路径的写入权限。由于用户仅拥有b1层级的写入权限,提交包含b2路径的完整对象时,规则会判定你无权操作b2路径,因此整个更新请求会被拦截。

正确的操作方式是仅提交需要修改的路径部分,比如只发送:

{"a1": {"b1": {"keyb11": "newvalue"}}}

或者更精准的:

{"a1/b1/keyb11": "newvalue"}

这样规则只会校验b1路径的权限,就能通过校验。

内容的提问来源于stack exchange,提问作者Marty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:04:52