Flutter Firestore:在iOS和 Android上都出现 [cloud_firestore/permission-denied],尽管规则已开放(如果确实如此)

移动开发 2026-07-12

enter image description here 我在Flutter应用中写入/读取Firestore时,遇到了持续性的 [cloud_firestore/permission-denied] 错误。这在Android和 iOS两个平台上都发生。

我到目前为止尝试过的:

  1. Firebase规则(Rules):为了测试,我把规则设为公开,并且我已经 发布
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}
  1. 规则测试区(Rules Playground):在Firebase控制台的 "Rules Playground" 中,当我模拟写入时,会显示一个 Success (Green) 的结果。

  2. Firebase配置: 我已经使用flutterfire configure CLI生成了firebase_options.dart。

  3. 初始化: 我的main.dart使用了正确的选项:

await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);
  1. 项目ID: 我已核对firebase_options.dart中的projectId与 Firebase控制台中的项目ID相符。

  2. 手动录入: 我可以通过Firebase控制台向集合手动添加数据,毫无问题。

  3. 清理与重建: 我已经多次执行flutter clean、flutter pub get,以及pod install。

错误日志:

[cloud_firestore/permission-denied] 调用方没有执行指定操作的权限。

由于它在两个平台上都会发生,且规则为true时就允许,我怀疑这不是原生配置问题,而是与应用向Firebase进行身份识别的方式有关。还有什么可能导致这个“Permission Denied”错误?

解决方法

如果不是你的规则拒绝了该操作,最有可能是项目上启用了 App Check强制执行,而Flutter客户端没有 传递有效的App Check令牌

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章