Flutter安卓应用删除账户时App Check令牌获取失败求助
我的Flutter安卓应用运行正常,但用户尝试删除账户时出现如下错误:
Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: Too many attempts
代码起初可用,但一段时间后就会触发该错误。我查阅资料后添加了App Check配置,但问题仍未解决。相关配置如下:
main.dart
WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); await FirebaseAppCheck.instance.activate( androidProvider: AndroidProvider.playIntegrity );
app/build.gradle
dependencies { implementation("com.google.firebase:firebase-appcheck-playintegrity") }
pubspec.yaml
firebase_app_check: ^0.2.1+2
已确认问题与网络、Firebase规则无关,请问我哪里配置出错了?
检查Play Integrity API配额:Play Integrity API有免费调用配额(每日10万次),若应用调用量超出阈值,就会触发
Too many attempts错误。登录Firebase控制台的App Check页面,查看Play Integrity的配额使用情况。如果超出配额,可考虑升级付费方案,或优化业务逻辑减少不必要的App Check令牌请求。验证App Check控制台配置:
- 确保Firebase控制台中,你的安卓应用已启用Play Integrity作为App Check提供方,且正确配置了应用包名、发布版和调试版的SHA-256指纹。
- 调试阶段若使用模拟器或未安装Google Play服务的设备,Play Integrity无法正常验证,会导致令牌获取失败。调试时可临时切换为
AndroidProvider.debug,发布版再切换回playIntegrity。
升级firebase_app_check依赖版本:当前使用的
^0.2.1+2是旧版本,可能存在令牌重试逻辑的bug。升级到pub.dev上的最新稳定版,新版本修复了多次重试导致的请求超限问题。优化删除账户逻辑的请求频率:删除账户操作可能触发多次Firebase API调用,每次调用都请求App Check令牌,短时间内大量请求会触发限流。优化逻辑:提前获取一次令牌复用,或合并相关API调用减少请求次数。
确认Play Integrity API已启用:登录Google Cloud控制台,检查Firebase关联的GCP项目是否已启用Play Integrity API。未启用该服务的话,即使配置了依赖也无法正常获取令牌。
内容的提问来源于stack exchange,提问作者Samet D.

