Flutter Firebase遇cloud_firestore/permission-denied权限拒绝错误求助
以下是针对你遇到问题的具体排查方向:
确认Firestore规则是否真正生效
有时候修改规则后容易忘记点击控制台右上角的「发布」按钮,或者网络延迟导致规则未同步到云端。直接去Firebase控制台的Firestore规则页面,检查当前显示的规则是否和你贴的一致,同时用页面内的「规则模拟器」模拟读写操作,验证是否能正常通过权限校验。检查应用与Firebase项目的关联正确性
确认你的Flutter应用(包括Beta测试包)使用的google-services.json(Android)或GoogleService-Info.plist(iOS)配置文件,对应的项目ID和你设置规则的Firebase项目完全一致。有时候误切换项目或者打包时用错配置文件,会导致连接到了规则不同的项目。排查隐性的身份验证影响
虽然你的规则设置为允许所有读写,但部分旧版本的cloud_firestore插件在未登录状态下可能存在兼容性问题,或者你的代码中存在未注意到的强制登录逻辑。可以临时添加匿名登录代码测试:await FirebaseAuth.instance.signInAnonymously();如果添加后恢复正常,说明是身份验证相关的隐性逻辑导致的权限错误。
检查Firebase服务状态
偶尔Firebase Cloud Firestore会出现临时服务故障,导致权限校验异常。可以查看Firebase官方状态页面确认服务是否正常运行。排查插件版本兼容性
检查pubspec.yaml中cloud_firestore的版本,是否最近通过pub get自动更新了新版本。部分新版本可能调整了权限校验逻辑,尝试回退到之前能正常运行的版本测试是否解决问题。清除客户端缓存
客户端可能缓存了旧的Firestore规则,即使云端规则已更新,仍会用旧规则进行本地校验。让测试用户清除应用缓存或卸载重装应用,看是否能恢复正常。
内容的提问来源于stack exchange,提问作者JemoDev

