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

如何配置Firebase实时数据库规则,安全创建Alias或删除自身Alias

Firebase Realtime Database Alias 安全规则配置

需求明确

  • 创建 Alias:仅允许创建数据库中未存在的条目
  • 删除 Alias:仅允许删除自身 id 字段与当前用户 auth.uid 匹配的条目

修正后的安全规则

{
  "rules": {
    "alias": {
      ".read": true,
      "$alias": {
        ".write": "auth != null",
        ".validate": "
          // 创建场景:节点不存在,且提交数据的id等于当前用户uid
          (!root.child('alias/' + $alias).exists() && newData.child('id').val() == auth.uid) || 
          // 删除场景:节点已存在,且该节点id等于当前用户uid,且操作为删除(新数据为空)
          (root.child('alias/' + $alias).exists() && root.child('alias/' + $alias).child('id').val() == auth.uid && newData.val() == null)
        "
      }
    }
  }
}

规则细节说明

  • 创建校验:既确保 Alias 未被占用,也限制用户只能为自己创建 Alias(提交数据的 id 必须是自身 uid)
  • 删除校验:仅允许用户删除归属自己的 Alias,且明确限定操作类型为删除(newData.val() == null)
  • 自动拦截修改操作:因为修改既不满足“节点不存在”的创建条件,也不满足“新数据为空”的删除条件,所以无法修改已存在的 Alias

匹配你的数据库结构

现有数据库结构完全适配上述规则,示例结构如下:

{
  "alias": {
    "mads": {
      "alias": "mads",
      "id": "4SCv1g84PcMoPTtwZloHol0m2j92"
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:27:11