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

Firebase Auth短信验证报错17020问题求助

解决Firebase Auth手机号验证错误17020的方案

你遇到的17020错误是Firebase Auth网络请求失败问题,结合日志中的CtaHttp类缺失提示及现有配置,按以下步骤排查修复:

  • 检查网络权限与安全配置
    确认AndroidManifest.xml的权限标签位于<manifest>根节点下(而非<application>内部),同时补充网络安全配置:
    在res/xml/目录创建network_security_config.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    

    并在<application>标签中添加引用:

    <application ... android:networkSecurityConfig="@xml/network_security_config">
    
  • 重新校验SHA证书指纹
    用以下命令获取当前debug签名的指纹:

    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    

    确认Firebase控制台的Android应用已添加正确的SHA-1和SHA-256指纹,重新下载google-services.json替换android/app/下的旧文件,执行flutter clean后重新构建。

  • 对齐依赖版本兼容性
    当前Firebase BOM版本与Flutter插件版本存在不匹配风险,修改android/app/build.gradle中的BOM版本:

    implementation(platform("com.google.firebase:firebase-bom:32.7.0"))
    

    执行flutter pub upgrade更新所有Firebase插件,再重新构建项目。

  • 修复MediaTek设备CTA组件问题
    在AndroidManifest.xml的<application>标签中添加配置跳过CTA检查:

    <meta-data android:name="com.mediatek.cta.ENABLED" android:value="false" />
    

    或在android/app/build.gradle的android块中添加:

    android {
        ...
        packagingOptions {
            exclude 'META-INF/*'
            doNotStrip '*/lib/*_cta.so'
        }
    }
    
  • 修正代码逻辑问题
    确保Firebase已在启动时初始化:

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(const MyApp());
    }
    

    同时确认codeSent回调中硬编码的smsCode与Firebase控制台添加的测试号码对应验证码一致,且phoneNumber格式严格遵循+[国家码][手机号]标准。

  • 彻底清理缓存并重建
    执行以下命令清除所有缓存后重新运行:

    flutter clean
    rm -rf android/.gradle android/build ios/Pods ios/Podfile.lock
    flutter pub get
    cd android && ./gradlew clean && cd ..
    flutter run
    

内容的提问来源于stack exchange,提问作者Saayeed M Daawoud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:26:09