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

Flutter Android端Firebase Phone Auth验证失败问题求助

Flutter Android端Firebase手机验证失败(iOS正常)解决方案

核心错误定位

从日志里能明确两个关键问题:

  1. 18002 Invalid PlayIntegrity token; app not Recognized by Play Store —— Play完整性验证不通过,商店无法识别你的应用
  2. API_KEY_ANDROID_APP_BLOCKED —— API密钥被拦截,权限校验失败

分步解决步骤

1. 修复Play Integrity验证失败

  • 换对SHA值:如果你的应用用了Google Play应用签名,别再用本地签名的SHA值了!去Play Console的「应用签名」页面,把那里的SHA-1和SHA-256复制到Firebase项目设置的「应用签名」板块中。
  • 启用Play Integrity API:登录Google Cloud Console,搜索「Play Integrity API」并启用该服务,未开启的话必然验证失败。
  • 发布应用到Play商店:哪怕是内部测试版本也行,从未在Play商店上架过的应用,Play Integrity不会通过验证。

2. 解决API密钥被拦截问题

  • 检查API密钥限制:找到Google Cloud Console中对应你的API密钥(和google-services.json里的current_key一致):
    • 「应用限制」:添加正确的应用包名+所有用到的SHA-1(Play签名、本地debug/release签名都要加),少一个都可能触发拦截。
    • 「API限制」:必须包含Identity Toolkit API和Play Integrity API,既不要设成“不限制API”,也不能漏加必要服务。
  • 更新google-services.json:修改完Firebase里的SHA值后,重新下载json文件替换项目中的旧文件,执行flutter clean && flutter pub get后重新编译应用。
  • 清理冗余API密钥:项目里只保留Firebase提供的API密钥,删掉其他无关密钥,避免冲突导致拦截。

3. 补充排查点

  • ReCaptcha配置检查:日志显示ReCaptcha流也失败了,去Google Cloud Console查看ReCaptcha设置,确保已添加应用包名且服务处于启用状态。
  • 清除应用缓存:测试前清除应用的缓存和数据,避免旧配置干扰验证流程。
  • 重置测试号码:虽然你提到测试号码可用,还是去Firebase Auth里重新添加一遍测试号码,确保配置未过期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:23:24