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

Flutter中Firebase手机号认证移除验证码验证问题求助

Flutter Firebase手机号认证仍弹出验证码界面的解决办法

排查与修复步骤

1. 核对Firebase的SHA-256配置

  • 打开Firebase控制台,进入项目设置 > 你的Android应用 > SHA证书指纹,确认以下三类SHA-256都已准确添加:
    • 开发环境:执行keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android(Windows用户路径替换为C:\Users\<你的用户名>\.android\debug.keystore)获取的debug指纹。
    • 发布密钥:从你本地的签名密钥库生成的指纹,命令是keytool -list -v -keystore <你的签名文件路径> -alias <密钥别名>。
    • Google Play上传密钥:在Play控制台应用签名页面复制的上传密钥指纹,注意要完整复制,别漏字符或带空格。
  • 添加完成后点击保存,然后重新下载google-services.json,替换项目android/app目录下的旧文件。

2. 确认签名与配置匹配

  • 如果你用App Bundle发布到Play商店,必须把Play自动生成的应用签名密钥SHA-256也加到Firebase里,而不是只加你本地的发布密钥。
  • 开发测试时,先卸载设备上的旧应用,再重新flutter run,确保用的是debug密钥签名的安装包。

3. 检查SafetyNet服务状态

  • Firebase手机号自动验证依赖Android的SafetyNet,要确保:
    • 你的Google Cloud项目已启用SafetyNet API(在Cloud控制台搜索启用即可),且Firebase的服务账号有访问权限。
    • 测试设备支持SafetyNet:部分老设备或定制ROM无法通过验证,会强制跳手动输入。可以用SafetyNet验证工具测一下设备兼容性。

4. 升级插件与核对Android配置

  • 把firebase_auth插件更到最新版,在pubspec.yaml里更新依赖:
    firebase_auth: ^最新版本号
    
  • 检查Android配置:
    • 项目级build.gradle里要包含:
      dependencies {
        classpath 'com.google.gms:google-services:4.3.15' // 或更高兼容版本
      }
      
    • 应用级build.gradle末尾要加:
      apply plugin: 'com.google.gms.google-services'
      

5. 分环境测试

  • 开发环境:用debug包测试,确认网络能正常访问Google服务,debug指纹配置正确。
  • 发布环境:打签名APK/App Bundle,上传到Play内部测试渠道,用测试账号下载验证自动登录是否生效。

内容的提问来源于stack exchange,提问作者Gautam Bhateja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:12:45