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

Firebase实时数据库安全规则配置:限制Entry节点写入权限

Firebase Realtime Database 安全规则配置:限制Entry节点写入权限

核心需求

仅允许写入Entry节点的用户对象,其name字段值必须存在于AllowedEntry节点的子节点中(比如AllowedEntry/ABC存在时,Entry下才能写入name为ABC的用户对象)。

有效安全规则代码

{
  "rules": {
    "Entry": {
      "$entryKey": {
        ".write": "root.child('AllowedEntry').hasChild(newData.child('name').val())"
      }
    }
  }
}

规则说明

  • $entryKey通配符:匹配Entry节点下所有动态生成的子节点键(对应你提到的{"ABC": {...}}这类动态键结构)
  • 权限校验逻辑:
    1. 通过newData.child('name').val()提取待写入用户对象的name字段值
    2. 检查AllowedEntry节点下是否存在以此name值为键的子节点(匹配你提供的数据结构:AllowedEntry/ABC、AllowedEntry/LMN等)
  • 解决你之前的问题:无需纠结动态键路径,$entryKey会自动匹配所有子节点,newData直接指向当前待写入的子节点数据,无需手动指定路径

额外补充

如果你的AllowedEntry子节点键与name字段值不一致(比如子节点键是随机ID,name字段存ABC),可以调整校验逻辑为:

".write": "root.child('AllowedEntry').orderByChild('name').equalTo(newData.child('name').val()).exists()"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:01:09