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

Flutter Firebase手机认证异常:无法发送OTP且报错17028

解决Firebase手机认证17028错误(非测试手机号无法发送OTP)

核心问题说明

测试手机号能正常使用,是因为Firebase对测试号跳过了Play Integrity合法性校验;而非测试号触发了完整校验流程,错误17028本质是Play Integrity Token验证失败,和应用签名、API配置直接相关。

修复步骤

1. 将Debug和Release的SHA指纹全部添加到Firebase

  • 多数人只添加了一种环境的签名指纹,导致换环境测试时触发错误。
  • 获取指纹:打开Android Studio的Gradle面板,找到app模块→Tasks→android→运行signingReport,复制debug和release版本的SHA-1、SHA-256。
  • 前往Firebase控制台项目设置→对应应用→添加指纹,将两种环境的指纹全部录入。

2. 启用Play Integrity API

  • 当前Firebase手机认证依赖Play Integrity校验,必须在Google Cloud控制台启用该API:
    • 从Firebase项目设置跳转至对应的Google Cloud控制台,搜索“Play Integrity API”并启用,确保关联的是你正在使用的Google Play开发者账号。

3. 关联Firebase与Google Play开发者账号

  • 若应用已上架或准备上架Google Play,必须完成账号绑定:
    • 进入Firebase项目设置→集成→Google Play,绑定你的开发者账号,确认包名与Play后台完全一致。

4. 更新google-services.json并清除应用缓存

  • 修改Firebase配置后,重新下载google-services.json替换项目中的旧文件;随后清除应用的缓存与数据,重新安装测试。

5. 检查自定义Play Token逻辑(若有)

  • 如果你手动实现了Play Integrity Token的获取逻辑,需确保调用PlayIntegrityManager.generateIntegrityToken()时参数正确,传递给Firebase的Token无格式错误或截断问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:41:14