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

Flutter项目Firebase Android调试令牌失效:Phone Auth仍触发reCAPTCHA

解决Flutter Firebase Phone Auth仍弹出reCAPTCHA的问题

以下是针对你遇到的问题的排查和解决步骤:

  • 确认App Check初始化顺序
    必须保证App Check的初始化代码早于Firebase Phone Auth的初始化逻辑。示例代码如下:

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      // 优先初始化App Check
      await FirebaseAppCheck.instance.activate(
        androidProvider: AndroidProvider.debug,
        appleProvider: AppleProvider.debug,
        webProvider: ReCaptchaV3Provider('你的reCAPTCHA v3站点密钥'),
      );
      runApp(const MyApp());
    }
    

    Web端即使启用调试模式,也必须指定ReCaptchaV3Provider,否则会自动 fallback 到弹窗式reCAPTCHA验证。

  • 核对调试令牌的准确性
    通过打印日志获取本地生成的调试令牌,再和Firebase控制台中添加的令牌完全比对:

    FirebaseAppCheck.instance.onTokenRefresh.listen((token) {
      print('当前App Check调试令牌: ${token.token}');
    });
    

    注意不要遗漏或多输入空格,确保令牌完全匹配。

  • 检查SHA-256指纹的关联配置
    除了在Firebase项目的「常规设置」中添加SHA-256指纹,还要确认在App Check的「Android调试提供商」配置里,是否关联了该指纹。部分场景下仅项目设置添加指纹无法生效,需在App Check的具体提供商配置中确认绑定关系。

  • Web端的额外配置与缓存清理
    若在Web环境测试:

    • 在firebase.json中添加调试令牌配置:
      {
        "appCheck": {
          "debugToken": "你的调试令牌"
        }
      }
      
    • 清除浏览器缓存和本地存储,避免旧的reCAPTCHA会话残留导致验证触发。
  • 确认构建模式为Debug
    App Check调试模式仅对Debug构建生效,若运行的是Release版本,即使添加了调试令牌,仍会触发正常的reCAPTCHA验证。确保使用Debug模式运行:

    flutter run --debug
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:36:23