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

Flutter集成Firebase手机号OTP验证时遇「Verification Failed: This app is not authorized to use Firebase Authentication」错误求助

Flutter集成Firebase手机号OTP验证时遇「Verification Failed: This app is not authorized to use Firebase Authentication」错误求助

兄弟,我之前也踩过类似的坑,结合你描述的情况(已经核对SHA1/SHA256、添加调试令牌、开启Auth和App Check、启用Play Integrity API,仅测试号码可用),给你几个针对性的排查方向,你可以逐一尝试:

  • 重点排查App Check的端到端配置:
    虽然你已经开启了App Check,但要确认Flutter代码里的初始化是否正确,尤其是使用Play Integrity Provider的场景。确保在main函数里有类似这样的初始化代码:

    await Firebase.initializeApp();
    await FirebaseAppCheck.instance.activate(
      androidProvider: AndroidProvider.playIntegrity,
    );
    

    另外,重新核对Firebase控制台里的App Check调试令牌——有时候复制粘贴时会不小心带入空格或遗漏字符,建议重新生成调试令牌,更新到控制台后,彻底卸载模拟器上的APP再重新运行测试。

  • 验证Play Integrity API的关联有效性:
    确认你的Firebase项目和对应的GCP项目是完全绑定的,并且Play Integrity API的权限是正确配置给当前Firebase项目的。另外,注意Debug包的Play Integrity验证限制:如果是本地Debug测试,除了添加调试令牌,还要确保你的Debug签名证书的SHA1/SHA256已经完整添加到Firebase控制台,没有任何拼写错误。

  • 临时调整Firebase Auth的App Check强制策略:
    进入Firebase控制台的「Authentication」→「登录方法」→「电话」,找到「App Check 强制执行」选项,临时改成「允许无需App Check的请求」。如果这时候能正常发送OTP了,那问题100%出在App Check的配置上,再回头重点排查App Check的细节;如果还是报错,再往下看其他方向。

  • 清理缓存并重新构建项目:
    有时候Android Studio或Flutter的缓存会导致签名信息不匹配,试试这些操作:

    • 执行Flutter命令清理缓存:flutter clean → flutter pub get
    • 清空Android Studio缓存:点击「File」→「Invalidate Caches...」→「Invalidate and Restart」
    • 卸载模拟器上的现有APP,重新编译运行
  • 升级Firebase相关插件版本:
    旧版本的firebase_auth、firebase_app_check插件可能存在兼容性问题,导致和最新的Firebase服务验证逻辑不匹配。建议把pubspec.yaml里的相关Firebase插件升级到最新稳定版,然后重新构建项目。

备注:内容来源于stack exchange,提问作者Hasinthaka Tharindu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 06:54:39