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

启用Firebase AppCheck后,模拟器访问Firestore提示PERMISSION DENIED怎么办?

启用Firebase AppCheck后在模拟器中访问Firestore的解决方案

以下是几种实用的开发测试方案,按需选择:

方案1:配置调试令牌

  • 打开Firebase控制台,进入AppCheck设置页面,找到对应应用的「调试令牌」板块,点击生成并复制新的调试令牌。
  • 修改你的AppCheck激活代码,添加调试令牌参数(以Flutter为例):
await FirebaseAppCheck.instance.activate(
  androidProvider: AndroidProvider.debug,
  appleProvider: AppleProvider.debug,
  debugToken: '你复制的调试令牌字符串',
);
  • 配置后,模拟器发出的请求会携带这个调试令牌,Firebase会认可该请求的合法性,不再返回权限拒绝。

方案2:修改Firestore安全规则放行调试环境

  • 在Firebase控制台的Firestore规则页面,添加调试环境的判断逻辑:
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if 
          request.app != null || // 生产环境的AppCheck校验逻辑
          debug; // 调试环境直接放行
    }
  }
}
  • 注意:发布正式版本前必须移除或替换debug条件,避免生产环境出现权限漏洞。

方案3:通过条件编译临时关闭AppCheck(快速测试用)

  • 利用开发环境的编译标识,仅在正式环境激活AppCheck(以Flutter为例):
import 'package:flutter/foundation.dart';

// Firebase初始化完成后
if (!kDebugMode) {
  await FirebaseAppCheck.instance.activate();
}
  • 这个方法操作简单,但不够严谨,适合临时快速测试,正式发布前务必确认AppCheck已正常启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:05:47