Flutter集成Firebase短信验证码登录遇Recaptcha错误求助
Firebase手机号登录Recaptcha错误排查方案
针对Flutter集成Firebase手机号登录时出现的Recaptcha相关错误,结合你已完成的配置,可按以下步骤排查:
- 确认关键API已启用:在Google Cloud控制台中,除Integrity API外,必须启用Identity Toolkit API和reCAPTCHA Enterprise API,这两个是Firebase手机号登录验证的核心依赖。
- 检查API Key的限制配置:
- 打开对应API Key的设置页面,应用限制需包含所有相关的SHA指纹:调试版本的SHA1/SHA256、本地发布版本指纹,以及Google Play控制台中「App signing key certificate」的SHA指纹(若开启了Google Play App Signing)。
- API限制需明确勾选
Identity Toolkit API和reCAPTCHA Enterprise API,不要仅限制Maps类API。
- 刷新配置文件并清理缓存:
- 重新下载Firebase项目的
google-services.json,替换到Flutter项目的android/app目录下。 - 执行
flutter clean、flutter pub get命令清理项目缓存,再重新构建应用。
- 重新下载Firebase项目的
- 更新Firebase依赖版本:
- 确保
pubspec.yaml中firebase_auth和firebase_core为最新稳定版,执行flutter pub upgrade更新依赖,避免版本兼容性问题。
- 确保
- 完善AndroidManifest配置:
- 确认添加Recaptcha所需的Activity配置:
<activity android:name="com.google.firebase.auth.internal.RecaptchaActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/> - 确保网络权限已声明:
<uses-permission android:name="android.permission.INTERNET"/>
- 确认添加Recaptcha所需的Activity配置:
- 测试调试模式验证:
- 在调试环境中,可临时启用测试模式绕过Recaptcha验证,判断是否为配置问题:
void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); // 仅调试用,发布时移除 await FirebaseAuth.instance.setSettings(appVerificationDisabledForTesting: true); runApp(MyApp()); }
- 在调试环境中,可临时启用测试模式绕过Recaptcha验证,判断是否为配置问题:
内容的提问来源于stack exchange,提问作者crisdavloz98
相关产品推荐
相关产品推荐

