Какой правильный синтаксис для ввода в Netlify env vars? - PullRequest
0 голосов
/ 06 января 2019

Мое приложение 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. Но, очевидно, это нет-нет.

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

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Для тех, кто использует приложение create-реагировать на приложения, добавил префикс REACT_APP_ в ваши env-переменные, добавил их в сборочные 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.

0 голосов
/ 07 января 2019

ОС Env Vars с префиксом GATSBY_ станут доступны в браузере JavaScript.

Gatsby требует, чтобы вы использовали следующий синтаксис для доступа к клиентской среде vars . Измените их в своем коде и в консоли приложения 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

};

Примечание: Безопасно ли выставлять apiKey Firebase для общественности?

...