【发布时间】:2021-01-15 22:27:24
【问题描述】:
我需要使用 在 ReactJs 公用文件夹中的 firebase-messaging-sw.js 中的 .env 文件。 .env 文件位于项目根文件夹中,我需要在 firebase-messaging-sw.js 中使用它,而无需将 .env 移动到另一个位置。但是当在 firebase-messaging-sw.js 中调用环境变量时。我在 ReactJs
中收到参考错误“在 firebase-messaging-sw.js 中未定义进程”这是我在 firebase-messaging-sw.js 中的代码。
importScripts('https://www.gstatic.com/firebasejs/7.8.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.8.1/firebase-messaging.js');
const config = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
有什么办法可以解决我的问题吗?
【问题讨论】:
-
React JS 是前端。
process.env对象在 Node JS 环境中提供。但是,您可以配置 Webpack 以使用dotenv包从process.env加载数据。但是当你构建 react 项目时,值将被替换为实际值,这样任何人都可以使用浏览器开发工具看到这些键。 -
我的 .env 文件也在 src 文件夹 (root/src) 中,那么没有办法解决这个问题。
标签: javascript reactjs firebase firebase-cloud-messaging