Firebase App Check在Test Lab多设备运行时遭限流的解决方案咨询
Firebase Test Lab多设备测试时App Check限流的解决方案
问题背景
使用Firebase Test Lab在多台设备上并行运行应用测试时,触发了App Check的限流机制,日志关键报错如下:
09-21 22:51:55.551: W/LocalRequestInterceptor(7303): Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: -8: Integrity API error (-8): The calling app is making too many requests to the API and hence is throttled. 09-21 22:51:58.672: W/LocalRequestInterceptor(7303): Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: -8: Integrity API error (-8): The calling app is making too many requests to the API and hence is throttled. 09-21 22:51:58.836: W/GCM-GMS(4915): Failed to get registration: java.io.IOException: QUOTA_EXCEEDED
可行解决方案
拆分测试批次,降低并发量
减少同时运行的测试设备数量,将大规模测试拆分为多个小批次执行,批次间设置10-15分钟的间隔,避免短时间内向App Check/Integrity API发送大量请求。例如原本同时启动10台设备,改为分3批次,每批次3-4台。启用App Check调试令牌
在测试环境中使用调试令牌替代生产环境的验证方式,调试令牌不受配额限制,完全适配测试场景:- 在Firebase控制台生成对应应用的调试令牌
- 在测试构建中加入环境判断逻辑,当检测到当前是Test Lab测试环境时,自动使用调试令牌获取App Check凭证
优化应用内的令牌请求逻辑
检查应用中App Check令牌的获取代码,减少不必要的请求:- 对获取到的令牌进行本地缓存,设置合理的过期时间,避免每次网络请求都重复获取
- 仅在访问敏感Firebase服务(如Firestore、Cloud Functions)前获取令牌,而非应用启动时就频繁调用
- 处理令牌获取失败(包括限流)时,实现指数退避重试机制,避免短时间内重复请求
申请API配额提升
如果业务测试确实需要高并发的多设备测试,可以通过Firebase控制台提交配额提升申请,详细说明测试场景的需求,申请更高的App Check/Integrity API调用配额。混合测试策略:本地+云端结合
将部分测试任务转移到本地模拟器或物理设备执行,减少对Firebase Test Lab的依赖。例如UI回归测试、单元测试在本地完成,仅将兼容性测试、多设备适配测试等必须云端多设备的任务放到Test Lab。
内容的提问来源于stack exchange,提问作者Bitwise DEVS
相关产品推荐
相关产品推荐

