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

启用App Check后Firebase云函数仍可公开访问,该如何修复?

修复Firebase云函数App Check不生效的问题

下面是针对你的问题的具体修复步骤:

  • 在Firebase控制台启用云函数的App Check强制验证
    仅在代码中设置enforceAppCheck: true无法生效,必须同步在控制台开启对应函数的验证:

    1. 打开Firebase控制台,进入你的项目
    2. 点击「Build」→「Cloud Functions」
    3. 在函数列表中找到getData,进入函数详情页
    4. 找到「App Check」设置项,开启「强制使用App Check验证请求」
  • 确保Flutter客户端正确集成并发送App Check Token
    云函数的验证依赖客户端携带有效的App Check Token,需要确认你的Flutter应用完成了以下配置:

    1. 集成firebase_app_check依赖并初始化,根据平台选择对应的验证提供者(Android用Play Integrity,iOS用App Attest或DeviceCheck):
      await FirebaseAppCheck.instance.activate(
        androidProvider: AndroidProvider.playIntegrity,
        appleProvider: AppleProvider.appAttest,
      );
      
    2. 调用云函数时,确保Token被正确携带:
      • 如果使用firebase_functions包的HttpsCallable,它会自动添加X-Firebase-AppCheck请求头
      • 如果手动发送HTTP请求,需要手动添加请求头:
        final appCheckToken = await FirebaseAppCheck.instance.getToken();
        final response = await http.get(
          Uri.parse('https://<你的区域>-<你的项目ID>.cloudfunctions.net/getData'),
          headers: {'X-Firebase-AppCheck': appCheckToken!.token},
        );
        
  • 重新部署云函数
    修改代码后,必须重新部署才能让enforceAppCheck配置生效:

    firebase deploy --only functions:getData
    
  • 排查权限豁免与本地测试场景
    如果你的测试IP被加入了云函数的「权限豁免」列表,或者使用Firebase Emulator进行测试,App Check验证会被跳过。确认生产环境的请求没有被豁免,且未使用模拟器访问线上函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:17:42