You need to enable JavaScript to run this app. Firebase手机号认证配置报错:firebase.app().options返回空对象{}
优惠活动
大模型
产品
解决方案
定价
更多

Firebase手机号认证配置报错:firebase.app().options返回空对象{}

Expo项目下Firebase手机号认证配置异常

问题现象

  • 完成Firebase手机号认证全流程配置后,运行时持续抛出认证相关错误,无法定位根因
  • 代码中通过console.log打印获取的firebaseConfig时,控制台输出为空对象{},未包含初始化阶段设置的Firebase应用参数
  • 开发环节已完成初步核验:Firebase相关依赖导入正常、项目初始化流程符合官方规范,存在配套报错截图可辅助定位问题

涉及核心实现代码

import { FirebaseRecaptchaVerifierModal } from 'expo-firebase-recaptcha';
import firebase from '../database/firebase';

interface Props {}
const PhoneAuth = (props: Props) => {
  const reCaptchaRef = React.useRef<any>(null);
  const [phoneNumber, setPhoneNumber] = React.useState<string>('');
  const [verificationId, setVerificationId] = React.useState<string>('');
  const [verificationCode, setVerificationCode] = React.useState<string>('');

  // 读取Firebase配置的逻辑
  const firebaseConfig = firebase.apps.length
    ? firebase.app().options
    : undefined;

  return (
    <View style={styles.screen}>
      <FirebaseRecaptchaVerifierModal
        ref={reCaptchaRef}
        firebaseConfig={firebaseConfig}
        attemptInvisibleVerification={true}
      />
      {/* 其余业务代码省略 */}
    )
}

常见问题排查方向

  • 校验Firebase模块的导出逻辑:如果../database/firebase文件未正确导出已初始化的Firebase SDK实例,而是导出了空配置、或未完成初始化的SDK对象,会直接导致firebase.apps.length判断逻辑失效,最终传入recaptcha组件的配置项为空
  • 核验初始化执行时序:如果项目采用异步方式加载Firebase初始化参数(例如从远程拉取配置、读取加密存储的环境变量),需确认组件渲染时初始化流程已执行完成,避免在app实例未注册时读取配置项
  • 检查配置项读取链路:如果初始化参数来自项目环境变量,需确认Expo项目的环境变量配置路径正确,不存在变量名不匹配、配置项未透传的问题,避免传给initializeApp的参数全为undefined
  • 核对依赖版本兼容性:确认expo-firebase-recaptcha的版本与项目使用的Firebase SDK版本匹配,不兼容的版本会出现无法正确读取传入配置的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 12:54:05