博览会常量不再在网络上工作(空清单对象)

gho*_*rix 5 javascript firebase typescript react-native-web expo

我在我的 expo 应用程序(Google Auth)中使用 firebase Auth,为了做到这一点,我需要在 .env 文件中设置我的 firebase 变量(我的 API_KEYS、AuthDomain ...)。我使用 expo 常量来获取这些环境变量并在我的 firebase.ts 文件中使用它们,实现后它可以在移动和网络上运行。今天我注意到它不再在网络上工作,因为constants.manifest对象是空的,我不明白为什么。

firebase.ts:

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

// Initialize Firebase

console.log("=======>", Constants);

const firebaseConfig = {
  apiKey: Constants.manifest?.extra?.apiKey,
  authDomain: Constants.manifest?.extra?.authDomain,
  projectId: Constants.manifest?.extra?.projectId,
  storageBucket: Constants.manifest?.extra?.storageBucket,
  messagingSenderId: Constants.manifest?.extra?.messagingSenderId,
  appId: Constants.manifest?.extra?.appId,
};

const Firebase = initializeApp(firebaseConfig);

export default Firebase;

Run Code Online (Sandbox Code Playgroud)

应用程序.config.js:

import "dotenv/config";

export default {
    expo: {
        entryPoint: "./src/App.tsx",
        name: "Flooz",
        slug: "flooz",
        version: "1.0.0",
        orientation: "portrait",
        icon: "./src/assets/images/icon.png",
        scheme: "flooz",
        userInterfaceStyle: "automatic",
        splash: {
            image: "./src/assets/images/splash.png",
            resizeMode: "contain",
            backgroundColor: "#ffffff",
        },
        updates: {
            fallbackToCacheTimeout: 0,
        },
        assetBundlePatterns: ["**/*"],
        ios: {
            supportsTablet: true,
        },
        android: {
            adaptiveIcon: {
                foregroundImage: "./src/assets/images/adaptive-icon.png",
                backgroundColor: "#ffffff",
            },
        },
        web: {
            favicon: "./src/assets/images/favicon.png",
        },
        extra: {
            apiKey: process.env.API_KEY,
            authDomain: process.env.AUTH_DOMAIN,
            projectId: process.env.PROJECT_ID,
            storageBucket: process.env.STORAGE_BUCKET,
            messagingSenderId: process.env.MESSAGING_SENDER_ID,
            appId: process.env.APP_ID,
        },
    },
};
Run Code Online (Sandbox Code Playgroud)

Max*_* Wu 1

世博会改变了它们的清单结构。

Constants.expoConfig.extra您可以在(源代码)中访问您的环境变量