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

Firebase模拟器规则全开仍抛出cloud_firestore/permission-denied错误

排查Firestore模拟器权限拒绝问题的方向
  • 检查Firestore模拟器规则同步状态
    本地修改的Firestore规则不会自动同步到模拟器,需要手动确保模拟器使用的是你设置的完全开放规则:

    • 执行命令推送规则到模拟器:firebase deploy --only firestore:rules
    • 打开Firestore模拟器Web界面(默认地址http://localhost:4000/firestore),查看规则面板是否显示你设置的完全开放代码:
      rules_version = '2';
      service cloud.firestore {
        match /databases/{database}/documents {
          match /{document=**} {
            allow read, write, create: if true;
          }
        }
      }
      
  • 确认Flutter与模拟器的连接配置
    确保代码中正确配置了Firestore模拟器的连接:

    // 在Firebase初始化后添加这段代码
    await FirebaseFirestore.instance.useFirestoreEmulator('localhost', 8080);
    

    注意端口号要和你启动模拟器时的Firestore端口一致(默认8080),如果启动时指定了其他端口,要对应修改。

  • 彻底清理AppCheck残留
    即使移除了依赖和初始化代码,可能存在缓存或配置残留:

    • 执行flutter clean清理项目build缓存,之后重新编译运行
    • 检查Android项目的AndroidManifest.xml,移除所有AppCheck相关的meta-data、权限或配置项
    • 检查iOS项目的Info.plist,删除AppCheck相关的键值对
    • 查看项目根目录的firebase.json,确认没有AppCheck相关的配置节点
  • 验证模拟器内的文档是否存在
    Firestore模拟器是独立的数据库,和线上环境完全隔离:

    • 打开模拟器Web界面,检查books集合下是否存在对应bookId的文档
    • 如果文档不存在,先通过模拟器UI添加或用代码写入模拟器后再尝试读取
  • 重启模拟器与应用
    尝试重置模拟器状态和应用缓存:

    • 执行firebase emulators:stop关闭所有模拟器,再用firebase emulators:start重新启动
    • 卸载Flutter应用后重新安装,清除应用本地缓存

内容的提问来源于stack exchange,提问作者ΞΫΛL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:05:19