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

Flutter应用中Firebase Phone Authentication突然失效,已启用App Check

解决Flutter Firebase Phone Auth + App Check失效问题

核心问题分析

从日志能明确两个关键故障点:

  • Play Integrity服务绑定失败:Integrity API error (-9): Binding to the service in the Play Store has failed,这是App Check依赖Play Integrity验证时的基础异常
  • App Check token获取失败:因无法拿到有效token,系统使用占位符请求,导致Phone Auth因缺少合法应用标识符被拒绝

针对性解决方案

1. 修复Play Store版本/服务问题

  • 打开设备的Google Play Store,进入「设置」→「关于」,检查并更新到最新版本
  • 若更新后仍报错,清除Play Store缓存与数据:
    1. 进入设备「设置」→「应用和服务」→「查看所有应用」
    2. 找到「Google Play Store」,点击「存储」→「清除缓存」「清除数据」
    3. 重启设备后重新测试

2. 验证App Check配置正确性

  • 确认Firebase控制台中App Check的Play Integrity配置:
    1. 进入Firebase控制台→目标项目→「App Check」
    2. 检查对应Flutter应用的Play Integrity配置是否完成,确保已添加正确的应用签名SHA-256指纹(调试版、发布版指纹都要配置,测试时别漏调试指纹)
  • 检查Flutter端初始化代码,确保在Firebase初始化后正确启用App Check:
    await FirebaseAppCheck.instance.activate(
      androidProvider: AndroidProvider.playIntegrity,
      appleProvider: AppleProvider.appAttest, // iOS根据需求配置
    );
    

3. 调试环境临时规避(仅用于测试)

如果是在调试设备上测试,临时切换App Check的Android提供者为调试模式,排除Play Integrity的干扰:

await FirebaseAppCheck.instance.activate(
  androidProvider: AndroidProvider.debug,
);

随后在Firebase控制台的App Check页面,将调试设备的SHA-256指纹添加到「调试令牌」中,验证Phone Auth是否能正常工作,以此排查是App Check配置问题还是Play Integrity服务问题。

4. 核对应用签名配置

  • 确保Flutter应用打包使用的签名证书,与Firebase控制台「项目设置」→「应用」中配置的SHA-256指纹完全一致
  • 调试时用Android Studio默认调试签名,发布版用正式签名,两者指纹都需在Firebase后台添加

5. 确认Play Integrity API已启用

进入Google Cloud控制台,搜索「Play Integrity API」,确保该API已为当前项目启用,未启用则点击「启用」按钮。


补充排查点

  • 优先使用物理设备测试,模拟器常存在Play Store服务缺失或版本过低的问题
  • 检查设备的Google Play服务是否为最新版本,进入「设置」→「应用和服务」→「Google Play服务」查看更新
  • 刚配置的App Check可能存在缓存延迟,等待10-15分钟后再测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:25:54