Ошибка ссылки: процесс не определен в firebase-messaging-sw.js

#javascript #reactjs #firebase #firebase-cloud-messaging

#javascript #reactjs #firebase #firebase-cloud-обмен сообщениями

Вопрос:

Мне нужно использовать файл .env в firebase-messaging-sw.js находится в общедоступной папке в ReactJS. Файл .env находится в корневой папке проекта, и мне нужно использовать его в firebase-messaging-sw.js без перемещения .env в другое место. но когда переменные среды вызывались в firebase-messaging-sw.js . Я получаю ошибку ссылки «процесс не определен в firebase-messaging-sw.js » в ReactJS

Это мой код в 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();
  

Есть ли какая-нибудь идея решить мою проблему?

Комментарии:

1. React JS — это интерфейс. process.env объект предоставляется в среде Node JS. Однако вы можете настроить Webpack для загрузки данных из process.env using dotenv package . Но когда вы создаете проект react, значения будут заменены на фактические значения, чтобы любой мог увидеть эти ключи с помощью инструмента разработки браузера.

2. У меня есть файл .env также в папке src (root / src), тогда нет ли решения для этого.

3. есть какие-либо обновления по этой проблеме? у меня тот же файл .env и я получаю эту ошибку

Ответ №1:

firebase-messaging-sw.js выполняется на стороне клиента, поэтому вы не можете получить доступ к какой-либо process глобальной переменной.

Комментарии:

1. У меня есть файл .env также в папке src (root / src), тогда нет ли решения для этого.