Firebase部署后删除认证账户致Firestore失效求助
首先,你的错误提示翻译为:安全规则更新失败导致Cloud Firestore数据库拒绝客户端请求
你修改的规则理论上已放开大部分读写权限(仅/users/{userId}下的删除操作要求匹配用户ID),但问题仍存在,大概率是以下原因,按步骤排查:
确认规则是否真的发布生效
打开Firebase控制台,进入Firestore数据库的「规则」页面,检查当前显示的规则是否为你修改后的版本。很多时候修改完规则会忘记点击「发布」按钮,或是发布过程中因网络问题导致规则未更新,旧规则仍在生效。排查客户端缓存问题
客户端可能缓存了旧的规则配置,若是Web应用就清除浏览器缓存,若是客户端APP则直接重启应用,之后再测试访问。用规则模拟器验证权限
在Firebase控制台的规则页面,使用「模拟器」功能:模拟一个未认证的请求(你已删除自身认证账户,request.auth会为null),比如读取任意文档,查看是否能通过规则校验。如果模拟器显示允许访问,但实际仍被拒绝,那基本是规则未发布或客户端缓存的问题。查看具体拒绝日志
进入Firebase控制台的「监控」→「日志」,筛选Firestore的拒绝请求日志,里面会详细显示是哪条规则导致请求被拒,帮你精准定位问题。
另外,你可以把规则里的allow delete: if request.auth.uid == userId;调整为allow delete: if request.auth != null && request.auth.uid == userId;,避免未认证时触发这条规则的判断报错,但这并非核心问题,优先确认规则是否生效即可。
内容的提问来源于stack exchange,提问作者太島実穂

