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

Flutter集成Firebase短信验证码报错:Problem retrieving SafetyNet Token: 7

解决Flutter Firebase手机号OTP的SafetyNet Token错误(代码7)

一、能否绕过SafetyNet校验?

可以,但仅建议在测试环境使用。生产环境依赖SafetyNet/Play Integrity保障账号安全,不建议禁用。

二、测试环境禁用SafetyNet的方法

在初始化FirebaseAuth时添加如下配置,即可直接跳过SafetyNet校验发送OTP:

FirebaseAuth.instance.setSettings(
  appVerificationDisabledForTesting: true,
);

三、生产环境错误排查与修复

如果要在正式环境解决这个错误,逐一检查以下几点:

  • 确认Firebase控制台的Android应用中,已添加所有环境的SHA指纹:包括debug和release版本的SHA-1、SHA-256,不要漏加。
  • 去Google Cloud Console搜索并启用Play Integrity API,确保你的项目已开启该服务。
  • 核对应用包名:Firebase控制台注册的包名要和你Flutter项目的android/app/build.gradle里的applicationId完全一致,大小写也不能错。
  • 测试网络环境:部分网络会屏蔽Google服务,导致无法获取Token,切换到移动数据或稳定的海外网络重试。
  • 检查Play Integrity集成:确认应用已关联Google Play Console,且Firebase控制台完成了Play Integrity的配置(比如上传签名证书)。
  • Debug版本验证:确保debug keystore的SHA指纹已添加到Firebase,且debug构建的应用是用该keystore签名的。

四、额外修复步骤

如果以上都没问题,试试刷新配置文件并清理项目缓存:

  1. 从Firebase控制台重新下载google-services.json,替换到Android项目的app目录下。
  2. 执行以下命令清理Flutter缓存:
flutter clean
flutter pub get

内容的提问来源于stack exchange,提问作者Daniel loaiza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:00:42