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

如何在Android Flutter Firebase应用中移除手机号验证时的ReCaptcha验证

移除Firebase手机号验证中的ReCaptcha验证(用Play Integrity API替代)

既然你已经完成了Firebase控制台启用Play Integrity API、更新google-services.json、添加SHA1/SHA256这些前置操作,直接按下面的步骤替换ReCaptcha验证即可:

  • 确认依赖配置:在模块级build.gradle(或build.gradle.kts)中添加最新的Firebase Auth和Play Integrity依赖:
// Firebase Auth
implementation 'com.google.firebase:firebase-auth:22.3.1'
// Play Integrity
implementation 'com.google.android.play:integrity:1.2.0'
  • 配置Firebase Auth使用Play Integrity:在初始化Firebase Auth的代码里,指定用Play Integrity替代ReCaptcha做设备验证:
// Kotlin 示例
val auth = FirebaseAuth.getInstance()
val playIntegrityConfig = PlayIntegrityAuthProvider.getPlayIntegrityConfig()
auth.setAuthRequestConfig(playIntegrityConfig)
// Java 示例
FirebaseAuth auth = FirebaseAuth.getInstance();
AuthRequestConfig playIntegrityConfig = PlayIntegrityAuthProvider.getPlayIntegrityConfig();
auth.setAuthRequestConfig(playIntegrityConfig);
  • 调整手机号验证流程:原来的验证码发送代码不需要额外的ReCaptcha相关配置,直接调用即可,现在会通过Play Integrity在应用内完成设备验证,不再跳转浏览器:
// Kotlin 发送验证码示例
val options = PhoneAuthOptions.newBuilder(auth)
    .setPhoneNumber(yourPhoneNumber)
    .setTimeout(60L, TimeUnit.SECONDS)
    .setActivity(this)
    .setCallbacks(phoneAuthCallbacks)
    .build()
PhoneAuthProvider.verifyPhoneNumber(options)
  • 权限与测试提醒:
    • 确保AndroidManifest.xml中声明了INTERNET权限,Play Integrity需要联网完成验证
    • 测试时优先使用已签名的APK/AAB(若用debug包,需在Firebase控制台添加debug包的SHA指纹),未签名的debug包可能无法正常触发Play Integrity验证
    • 设备需安装最新版本的Google Play服务

内容的提问来源于stack exchange,提问作者Pranav Khandelwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:27:10