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

如何限制Firebase实时数据库仅允许特定子键的.write权限

解决Firebase实时数据库仅允许指定子节点写入的规则问题

你的问题出在!newData.hasChild('other')只能拦截名为other的特定子节点,没法阻止其他任意名称的额外子节点。要实现仅允许存在data1和data2两个子节点的要求,需要同时验证两点:

  • 必须包含指定的两个子节点
  • 子节点的总数恰好是2(确保没有额外节点)

修改后的规则如下:

{
  "rules": {
    ".read" : false,
    "$user": {
      ".read": true,
      ".write": "newData.hasChildren(['data1', 'data2']) && newData.numChildren() == 2"
    }
  }
}

规则说明:

  • newData.hasChildren(['data1', 'data2']):确保写入的数据必须包含data1和data2这两个子节点,缺一不可
  • newData.numChildren() == 2:限制写入的数据只能有2个子节点,结合上面的条件,就保证了只能是data1和data2,不会有其他额外节点

这样就能完全满足你“仅允许newData包含data1和data2”的写入要求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:20:56