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

Flutter Web Firebase Auth手机号验证报错:TypeError读取settings属性失败

Flutter Web Firebase Auth手机号验证报错:TypeError: Cannot read properties of undefined (reading 'settings') 解决方法

这个错误本质是Web端Firebase Auth初始化不完整、配置缺失或版本兼容问题导致的,以下是具体修复步骤:

  • 检查Web端Firebase配置完整性
    确保web/index.html中正确引入Firebase Auth SDK并完成初始化,配置信息要和Firebase控制台一致:

    <!-- 在index.html的body末尾添加 -->
    <script type="module">
      import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js";
      import { getAuth } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-auth.js";
      const firebaseConfig = {
        apiKey: "你的API_KEY",
        authDomain: "你的AUTH_DOMAIN",
        projectId: "你的PROJECT_ID",
        storageBucket: "你的STORAGE_BUCKET",
        messagingSenderId: "你的MESSAGING_SENDER_ID",
        appId: "你的APP_ID"
      };
      const app = initializeApp(firebaseConfig);
      const auth = getAuth(app);
    </script>
    

    若使用FlutterFire初始化,需保证Firebase.initializeApp()在Web端执行成功。

  • 确认依赖版本兼容性
    检查pubspec.yaml中firebase_core和firebase_auth的版本,建议使用最新稳定版避免兼容问题:

    dependencies:
      flutter:
        sdk: flutter
      firebase_core: ^2.15.0
      firebase_auth: ^4.10.0
    
  • 优化验证代码逻辑
    原代码混用await和.then()易引发异步逻辑问题,统一使用async/await写法,并确保auth是正确初始化的实例:

    void verifyPhoneNumber() async {
      try {
        final confirmationResult = await FirebaseAuth.instance.signInWithPhoneNumber("+91$phoneNumber");
        final verificationId = confirmationResult.verificationId;
        // 后续可添加验证码输入与验证逻辑
      } catch (error) {
        print('验证出错: $error');
      }
    }
    
  • 检查Firebase控制台Auth设置
    登录Firebase控制台,进入Authentication -> Sign-in method,确认已启用Phone登录方式,且Web应用域名已添加到授权域名列表中。

内容的提问来源于stack exchange,提问作者User Technozer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:02:34