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

如何通过Firebase安全规则阻止Users集合文档删除,及能否禁止Firebase Console删除该集合文档?

如何通过Firebase安全规则禁止Users集合文档被删除

我来帮你搞定这个需求——要让Users集合里的所有账号文档永远无法被删除,哪怕是管理员在Firebase Console里操作也不行,咱们从规则配置和控制台限制两方面来说:

一、配置Firebase安全规则实现禁止删除

首先要注意一个细节:Firestore的集合名称是区分大小写的,你当前规则里写的是/USERS/{userId},如果你的实际集合是Users,一定要改成完全一致的名称,否则规则不会生效。

完整规则示例

如果想保留Users集合的读写权限,但彻底禁止删除,可以用下面的规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // 针对Users集合(名称务必和实际集合一致)
    match /Users/{userId} {
      allow read, write: if true; // 保留读写权限,不需要的话可以调整为具体条件
      allow delete: if false; // 核心:永远拒绝删除请求
    }
    // 如果其他集合需要保持原来的开放权限,加上这段
    match /{document=**} {
      allow read, write;
    }
  }
}

规则说明

  • allow delete: if false;这个条件永远无法满足,所以任何发起删除Users集合文档的请求(不管是SDK调用还是控制台操作)都会被安全规则拦截。
  • 如果你不需要开放Users集合的读写权限,可以把allow read, write改成具体的权限条件,或者直接移除(默认拒绝),但核心的allow delete: if false;一定要保留。

二、能否禁止Firebase Console删除?

当然可以!Firebase Console里的文档操作完全遵守安全规则,不管是普通开发者还是项目管理员,只要规则里设置了allow delete: if false;,在控制台尝试删除Users集合的文档时,系统会直接提示权限不足,无法完成删除操作。

哪怕是项目所有者,也没办法绕过这个规则——安全规则是Firestore层面强制执行的,所有操作都必须符合规则要求。

注意事项

  • 一定要确认集合名称大小写匹配,否则规则会对目标集合无效。
  • 修改规则后记得点击Firebase控制台规则编辑器里的「发布」按钮,确保规则生效。
  • 如果之后需要临时开放删除权限(比如特殊维护),只能修改安全规则,所以要控制好规则修改的权限,避免被误改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 18:47:29