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

Firebase OTP电话认证报错17010:测试正常真机失效求助

解决Firebase电话认证错误17010(真机无法工作但测试模式正常)

错误码17010核心原因基本是签名配置不匹配或SmsRetriever服务相关配置缺失,以下是针对性解决步骤:

  • 核对签名证书指纹
    测试模式用debug签名,真机正式环境用release签名,两者指纹必须分别添加到Firebase和Google Console:

    1. 用命令行获取正式签名的SHA-1/SHA-256指纹:
      keytool -list -v -keystore 你的签名文件路径 -alias 签名别名
      
    2. 登录Firebase控制台→项目设置→对应Android应用,添加上述指纹;同时确保Google Console中Android Device Verification的API密钥限制里包含该指纹
    3. 替换项目中旧的google-services.json文件,同步Firebase配置
  • 验证SmsRetriever配置

    1. 确保项目依赖中包含SmsRetriever库:
      implementation "com.google.android.gms:play-services-auth-api-phone:19.0.0"
      
    2. 确认短信模板包含正式签名生成的应用哈希字符串,格式示例:

      【你的应用名】验证码:123456。Fa+9qCX9VSu
      哈希字符串可通过Google官方的AppSignatureHelper类生成,必须和正式签名环境匹配

  • 检查Google Console与Firebase关联状态

    1. 确认Google Console中已启用Android Device Verification API
    2. 若应用使用Google Play App Signing,需将Google Play生成的签名指纹也添加到Firebase控制台
  • 真机测试注意事项

    1. 必须安装正式签名的APK/App Bundle测试,debug包的签名环境和正式环境不兼容
    2. 更新真机上的Google Play服务到最新版本,旧版本可能导致SmsRetriever服务异常
  • 补充调试手段
    在认证回调中打印完整错误信息,便于定位更细节的问题:

    PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phoneNumber,
        60,
        TimeUnit.SECONDS,
        this,
        object : PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
            override fun onVerificationFailed(e: FirebaseException) {
                Log.e("AuthDebug", "错误详情:${e.message},错误码:${e.errorCode}")
            }
        }
    )
    

内容的提问来源于stack exchange,提问作者Ibad Hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:22:13