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

Firebase Auth跨设备报错unknown status code:17499 请求被拦截

Firebase Auth 手机号认证报错17499:Android客户端请求被拦截 解决方案

错误日志参考

E/FirebaseAuth: [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17499 Requests from this Android client application ____package name_____ are blocked.
E/AuthUI: A sign-in error occurred.
    com.google.firebase.FirebaseException: An internal error has occurred. [ Requests from this Android client application ___package name_____ are blocked. ]
        at com.google.android.gms.internal.firebase-auth-api.zzti.zza(com.google.firebase:firebase-auth@@21.0.3:4)
        at com.google.android.gms.internal.firebase-auth-api.zzuc.zza(com.google.firebase:firebase-auth@@21.0.3:1)
        at com.google.android.gms.internal.firebase-auth-api.zzud.run(com.google.firebase:firebase-auth@@21.0.3:3)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:226)
        at android.app.ActivityThread.main(ActivityThread.java:7178)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:503)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)

报错截图


排查解决步骤

按优先级从高到低逐一验证:

  • 第一步:确认SHA指纹配置全量正确且配置文件同步更新
    新增SHA后触发报错90%是这一步的问题:

    1. 所有开发人员必须导出自己本地实际使用的签名文件指纹,不要用错:debug签名默认路径为用户目录下.android/debug.keystore,默认别名androiddebugkey,默认密码android;release签名用自己正式的keystore文件即可。
    2. 用keytool命令导出正确的SHA1、SHA256值,不要从APK反编译结果、IDE其他面板抄错值:
      # 导出debug签名指纹示例
      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
      
    3. 把所有成员的debug、release签名的SHA1、SHA256全部添加到Firebase控制台的Android应用配置页,不要漏加任何一个。
    4. 加完所有指纹后,必须重新下载最新的google-services.json文件,替换掉项目app模块目录下的旧文件,执行clean项目后重新编译,不要用缓存的旧配置。
    5. 测试前先卸载设备上之前安装的旧APK,避免系统缓存旧的签名校验信息。
  • 第二步:检查API key的应用限制配置
    打开对应Firebase项目绑定的Google Cloud后台,进入「API和服务-凭证」页面,找到Android应用当前使用的API key:

    • 如果API key开启了Android应用限制,必须把所有签名对应的「SHA1+包名」组合全部添加到允许列表,漏加任何一个签名的指纹都会直接触发17499拦截。
    • 测试阶段如果嫌配置麻烦,可以暂时把API key的应用限制改成「无」,验证功能正常后再逐步加回限制,定位是否是这部分配置导致的问题。
  • 第三步:排查Firebase反滥用风控拦截

    1. 测试阶段建议把所有测试用的手机号、测试设备对应的信息加到Firebase Authentication的测试白名单中,避免短时间重复请求验证码触发反滥用拦截,临时拦截一般1-2小时会自动解除。
    2. 如果开启了Firebase App Check,必须把所有开发环境的debug签名、调试用的模拟器指纹加到App Check的调试允许列表,否则App Check会直接拦截未认证的客户端请求,抛出同类错误。
  • 第四步:修复依赖版本和配置冲突
    你当前使用的firebase-auth:21.0.3存在已知的配置缓存bug:

    1. 把项目根目录build.gradle中的google-services插件升级到最新稳定版,不要使用4.3.0之前的旧版本。
    2. 建议引入Firebase BOM统一管理所有Firebase依赖版本,把Auth、UI相关依赖升级到最新稳定版,避免旧版本的签名校验逻辑异常。
    3. 检查多渠道打包配置,确保不同包名的渠道没有混用错误的google-services.json文件,不要在代码中硬编码google_client_id,所有配置从json自动生成的资源文件读取。

内容的提问来源于stack exchange,提问作者Dr. Sa.M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:54:20