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

Flutter中如何强制触发Firebase Auth的verificationComplete回调?

Firebase Auth 手机号验证:verificationComplete 不触发及 pinput 崩溃问题解决方案

关于 verificationComplete 无法触发的问题

首先明确:verificationComplete 无法强制触发,它的触发依赖 Firebase SMS Retriever API 成功自动捕获到符合格式的验证码短信,且系统自动填充机制正常工作。以下是排查和修复步骤:

  • 严格校验验证码短信格式
    短信必须包含 # 开头的验证码,末尾附加你的应用 SHA-256 哈希值,示例格式:

    Your verification code is: 123456
    FA+9qCX9VSu
    

    哈希值可通过 Firebase 控制台获取,或用 Google 提供的工具生成。格式不符合的话,Retriever API 无法识别,自然不会触发回调。

  • 确认 SMS Retriever API 配置正确

    • 在 Firebase 控制台的项目设置中,添加应用的 SHA-256 签名哈希(debug 和 release 环境的哈希都要加,否则发布后会失效)
    • 确保依赖版本兼容:Flutter 项目中,firebase_auth 需使用最新稳定版,Android 原生依赖需包含 com.google.android.gms:play-services-auth
  • 检查设备自动填充权限与设置

    • 开启设备的自动填充服务(路径:设置 → 系统 → 语言和输入法 → 自动填充服务)
    • 部分定制 ROM 可能限制应用的短信捕获能力,可尝试动态申请 SEND_SMS 和 RECEIVE_SMS 权限(尽管 Firebase 官方说明 Retriever API 不需要,但实际部分场景下需要)

关于 pinput 设置 smsUserConsentApi 崩溃的问题

  • 不要同时混用 SMS Retriever API 和 SMS User Consent API:前者用于自动捕获触发 verificationComplete,后者需要用户手动授权验证码读取,两者逻辑冲突,这是导致崩溃的核心原因
  • 将 androidSmsAutofillMethod 设置为 AndroidSmsAutofillMethod.smsRetrieverApi,与 Firebase 的 verificationComplete 回调逻辑匹配
  • 升级 pinput 和 firebase_auth 到最新稳定版,避免版本兼容问题
  • 查看崩溃时的 Logcat 日志,定位具体错误(比如权限缺失、API 初始化失败等)

内容的提问来源于stack exchange,提问作者Ricardo Edmundo Juarez Salazar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:50:04