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

Flutter中Firebase Phone Auth禁用Re-Captcha异常问题(2023)

Flutter Firebase Phone Auth 禁用Re-Captcha 问题排查与解决

你已经完成了启用Google Play Integrity API、添加SHA指纹、更新配置文件、添加依赖和启用App Check等操作,但Re-Captcha仍出现,可按以下步骤排查修复:

1. 核对App Check核心配置

  • 在Firebase控制台的App Check模块中,为Android应用选择Play Integrity作为验证提供者,不要选其他选项。
  • 确认已将对应环境(调试/发布)的SHA-256指纹准确添加到Play Integrity的配置项中,指纹与本地keystore完全匹配。

2. 修正Flutter端App Check初始化代码

在项目入口(如main.dart)中,必须明确指定Android使用Play Integrity提供者初始化App Check:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  
  // 关键:指定AndroidProvider为playIntegrity
  await FirebaseAppCheck.instance.activate(
    androidProvider: AndroidProvider.playIntegrity,
  );
  
  runApp(const MyApp());
}

3. 确保依赖版本兼容

  • 更新pubspec.yaml中的Firebase相关依赖到最新稳定版:
dependencies:
  firebase_core: ^2.15.0
  firebase_auth: ^4.10.0
  firebase_app_check: ^0.2.1+11
  • 在Android的app/build.gradle中添加Play Integrity依赖,版本保持最新:
dependencies {
  implementation "com.google.android.play:integrity:1.2.0"
  // 其他Firebase依赖...
}

4. 排查设备与运行环境问题

Re-Captcha无法跳过的常见场景:

  • 使用Android模拟器测试:模拟器不支持Play Integrity验证,必须用真实Android设备
  • 应用签名不匹配:调试版要用debug keystore的SHA指纹,发布版用正式签名的指纹,两者都要在控制台配置
  • 设备未安装Google Play服务或版本过低:确保设备上的Google Play服务是最新版

5. 开启Phone Auth的App Check强制验证

在Firebase控制台进入Authentication > 登录方法 > 电话,勾选强制使用App Check选项,让Firebase优先验证App Check结果,跳过Re-Captcha。

6. 清理并重新部署应用

  • 卸载设备上的现有测试应用
  • 执行flutter clean清理项目缓存
  • 重新构建并安装应用,确保所有配置变更生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:12:49