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

Firebase短信验证请求失败:17499错误及请求过多问题求助

解决Firebase手机认证中App Check令牌无效及请求次数过多问题

问题分析

从日志可定位两个核心问题:

  • App Check令牌请求次数超限,被迫使用占位符令牌
  • 短信验证失败,根源是Firebase App Check令牌无效(状态码17499)

结合你的配置,问题出在debug环境下的App Check配置与生产环境的Play Integrity规则不匹配,同时debug模式的请求限制触发了次数超限。

解决方案

1. 区分Debug/Release环境的App Check配置

你当前代码固定使用AndroidProvider.debug,但生产环境启用了Play Integrity,这会导致debug包无法生成有效令牌。需根据编译环境切换Provider:

import 'package:flutter/foundation.dart';

// ...

await FirebaseAppCheck.instance.activate(
  webRecaptchaSiteKey: 'recaptcha-v3-site-key',
  androidProvider: kDebugMode 
      ? AndroidProvider.debug 
      : AndroidProvider.playIntegrity,
);

2. 配置Debug环境的App Check指纹

  • 通过Android Studio的Gradle > app > Tasks > android > signingReport获取debug签名的SHA-1指纹
  • 进入Firebase控制台 > 对应项目 > App Check > 目标Android应用 > Debug提供者,添加该debug SHA-1指纹
  • 保存配置后,debug环境即可生成有效的App Check令牌

3. 解决请求次数过多问题

  • 检查代码是否重复调用FirebaseAppCheck.instance.activate(),避免多次触发令牌请求
  • 开发阶段减少不必要的认证请求,或在测试时添加适当延迟,避免短时间内频繁请求触发限制
  • 调试期间若因频繁重启应用导致超限,可暂时降低debug模式下App Check的验证严格性(仅用于开发,上线前必须恢复)

4. 验证Release环境的Play Integrity配置

确保Release包的签名SHA-1/SHA-256已正确添加到Firebase控制台和Google Cloud的Play Integrity配置中,且App Check已将Play Integrity设为Release环境的提供者。


内容的提问来源于stack exchange,提问作者Baimam Boukar Jean Jacques

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:05:11