Какой правильный синтаксис для ввода в переменные Netlify env?

Мое приложение Gatsby, размещенное на Netlify, выдает ошибку, касающуюся моей конфигурации Firebase.

Каков правильный синтаксис для ввода моего приложения в Firebase через Netlify и Gatsby?

Моя конфигурация находится в верхней части моего src / components / Firebase / firebase.js:

const config = {
  apiKey: process.env.API_KEY,
  authDomain: process.env.AUTH_DOMAIN,
  databaseURL: process.env.DATABASE_URL,
  projectId: process.env.PROJECT_ID,
  storageBucket: process.env.STORAGE_BUCKET,
  messagingSenderId: process.env.MESSAGING_SENDER_ID

};

Локально, вверху моего gatsby-config.js:

require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
 })

В Github я опускаю оператор require в моем gatsby-config.js, потому что у Netlify есть его копия.

Тем не менее, я получаю ошибку как локальную, так и Netlify:

Uncaught (in promise) code: "auth/invalid-api-key"
message: "Your API key is invalid, please check you have copied it 
correctly.

Да, я проверил, мои env vars в порядке ..

Я думал, что это будет просто. Мое приложение должно иметь доступ к данным конфигурации на основе того факта, что у Netlify есть копия.

Играя вокруг, я увидел, что приложение yy работает локально и на Netlify, если я передаю конфиденциальную конфигурацию firebase напрямую через firebase.js. Но, очевидно, нет-нет.

Кто-нибудь еще испытывает аналогичные результаты при запуске аналогичной установки?

github.com/gatsbyjs/gatsby/issues/7381
ksav 07.01.2019 15:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
576
2

Ответы 2

OS Env Vars which are prefixed with GATSBY_ will become available in browser JavaScript.

Гэтсби требует, чтобы вы использовали следующий синтаксис для доступа к переменные среды на стороне клиента. Измените их в своем коде и в консоли приложения Netlify.

const config = {
  apiKey: process.env.GATSBY_API_KEY,
  authDomain: process.env.GATSBY_AUTH_DOMAIN,
  databaseURL: process.env.GATSBY_DATABASE_URL,
  projectId: process.env.GATSBY_PROJECT_ID,
  storageBucket: process.env.GATSBY_STORAGE_BUCKET,
  messagingSenderId: process.env.GATSBY_MESSAGING_SENDER_ID

};

Примечание:Насколько безопасно открывать публичный доступ к Firebase apiKey?

Спасибо, парни! Это сработало. Мне нужен был require ("dotenv") .. в gatsby-config.js, а в моем .env я использовал префикс GATSBY_.

honeymkr 08.01.2019 17:59

Для всех, кто использует приложение create-response-app, добавлен префикс REACT_APP_ к вашим переменным env, добавлен их в переменные среды сборки Netlify в настройках и развернут на сайте Netlify, но все еще виден

Uncaught (in promise) code: "auth/invalid-api-key", message: "Your API key is invalid, please check you have copied it correctly.

Мой случай был разрешен простым повторным развертыванием приложения на Netlify.

Другие вопросы по теме