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

Firebase Realtime Database规则配置:添加用户自删权限且保留原有规则

修改后的Firebase Realtime Database规则
{
  "rules": {            
    //".read": true,
      "Users" : {
           "3X3": {
              ".indexOn": ["time"],
             ".read": "data.exists()",
             "$userID": {
               ".write": "!data.exists() || !newData.exists() || (newData.child('time').val() < data.child('time').val()) || (newData.child('userName').val() != data.child('userName').val())"
             }
          }
       }
    }
  }

规则逻辑解析

  • 首次录入数据:!data.exists() 保留原逻辑,用户创建自己的节点时直接允许写入。
  • 删除自身数据:新增 !newData.exists() 条件——调用 RemoveValueAsync() 时,目标节点的newData会被置为空,此条件成立,允许删除操作。
  • time字段校验:只有当newData存在(非删除场景)时,才会触发newData.child('time').val() < data.child('time').val()的校验,确保只能写入比当前值更小的time。
  • userName修改权限:同理,仅在非删除场景下校验newData.child('userName').val() != data.child('userName').val(),允许修改用户名。

这样调整后,删除操作不会绕过原有规则,所有功能都能正常保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:55:19