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

Expo项目Web端Constants.manifest对象为空导致Firebase Google Auth初始化失效问题排查求助

解决Expo Web端Constants.manifest为空导致Firebase Auth初始化失败的问题

我之前也碰到过完全一样的坑!核心原因是Expo在Web环境下的配置获取逻辑已经更新了——自从Expo SDK 44+版本开始,Web端不再支持Constants.manifest,这就是你现在拿不到环境变量的根源。

具体解决方案步骤:

  • 替换Constants.manifest为Constants.expoConfig
    Expo官方现在推荐用Constants.expoConfig来跨平台获取配置,它在移动端和Web端都能正常读取到app.config.js里的extra字段。直接修改你的firebase.ts代码:

修改后的firebase.ts:

import { initializeApp } from "firebase/app";
import "firebase/auth";
import Constants from "expo-constants";

// Initialize Firebase
console.log("=======>", Constants.expoConfig); // 改为打印expoConfig验证
const firebaseConfig = {
  apiKey: Constants.expoConfig?.extra?.apiKey,
  authDomain: Constants.expoConfig?.extra?.authDomain,
  projectId: Constants.expoConfig?.extra?.projectId,
  storageBucket: Constants.expoConfig?.extra?.storageBucket,
  messagingSenderId: Constants.expoConfig?.extra?.messagingSenderId,
  appId: Constants.expoConfig?.extra?.appId,
};
const Firebase = initializeApp(firebaseConfig);
export default Firebase;
  • 验证环境变量注入是否正确
    确认你的.env文件变量名和app.config.js里的process.env.XXX完全匹配,比如.env里是API_KEY=xxx,app.config.js里就要对应写apiKey: process.env.API_KEY,大小写和名称都不能出错。

  • 清理缓存重启项目
    旧缓存可能导致配置不更新,执行命令强制清理并重启:

    expo r -c
    

补充说明

之前你的项目能正常运行,大概率是因为当时用的是旧版Expo SDK,Web端还兼容Constants.manifest;但升级SDK后,Web端的配置获取逻辑统一为expoConfig,旧的manifest就会返回空对象了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 12:48:11