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

Flutter Web:如何创建RecaptchaVerifier用于Firebase手机号登录?

Flutter Web 自定义Firebase手机号登录的ReCAPTCHA验证器创建方法

要解决RecaptchaVerifier需要FirebaseAuthPlatform参数的问题,你可以直接通过已初始化的FirebaseAuth实例获取对应的platform对象,具体步骤如下:

  1. 初始化Firebase Auth
    确保已完成Firebase初始化,获取FirebaseAuth实例:

    import 'package:firebase_auth/firebase_auth.dart';
    
    await Firebase.initializeApp();
    final FirebaseAuth auth = FirebaseAuth.instance;
    
  2. 创建RecaptchaVerifier实例
    利用FirebaseAuth实例的platform属性作为必填参数,同时配置自定义ReCAPTCHA选项:

    final RecaptchaVerifier verifier = RecaptchaVerifier(
      container: 'recaptcha-container', // 对应web页面中渲染ReCAPTCHA的DOM元素ID
      size: RecaptchaSize.compact,
      theme: RecaptchaTheme.light,
      auth: auth.platform, // 传入FirebaseAuthPlatform实例
    );
    
  3. 在Web页面添加ReCAPTCHA容器
    在web/index.html中添加指定ID的DOM元素,用于渲染ReCAPTCHA组件:

    <div id="recaptcha-container"></div>
    
  4. 调用signInWithPhoneNumber
    将创建好的verifier传入方法,完成手机号登录流程:

    final ConfirmationResult confirmationResult = await auth.signInWithPhoneNumber(
      '+1234567890', // 替换为目标手机号
      verifier,
    );
    

注意事项

  • 确保pubspec.yaml中已正确引入firebase_auth依赖(firebase_auth_web会被自动包含)
  • ReCAPTCHA的container ID必须与web页面中的元素ID完全匹配,否则无法渲染验证组件
  • 可根据需求调整RecaptchaSize、RecaptchaTheme等参数,适配页面风格

内容的提问来源于stack exchange,提问作者Martin Reindl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:05:38