Как найти функцию firebase, запущенную локально или нет из кода - PullRequest
2 голосов
/ 17 мая 2019

Я хотел назначить URL для функций firbase

const localUrl = localUrlBase + apiEndpoint
const onlineUrl = onlineURLBase + apiEndpoint 
const urlToUse = process.env.dev? localUrl : onlineUrl

Теперь, когда я запускаю функции локально, я ожидаю, что он назначит localUrl, но он присваивает onlineUrl

Как узнать из кода, размещены ли функции в сети или работают локально.

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

Согласно вашему коду, если вы установите

const process.env.dev = true;

где-либо до того места, где вы используете 'process.env.dev', тогда он должен использовать 'localUrl', иначе он всегда будет использовать 'onlineUrl '

Вы можете проверить, какие значения наконец установлены в переменную' urlToUse ', используя console.log, как показано ниже

const urlToUse = process.env.dev? localUrl : onlineUrl
if(console) console.log(urlToUse);

, и проверить консоль браузера, чтобы увидеть журнал.

Вы также можете использовать следующую уловку для динамической установки 'process.env.dev'

if (location.hostname === "localhost" || location.hostname === "127.0.0.1")
process.env.dev = true;
else
process.env.dev = false;

Однако значение 'location.hostname' может отличаться в зависимости от конфигурации среды разработки / хоста.

0 голосов
/ 25 мая 2019

Подход:

Это можно сделать, передав аргументы в узел. В этом примере мы можем передать аргумент dev вместе с нашей обычной командой для запуска нашего приложения узла. Я буду использовать очень общее соглашение об именах (app.js), но вам придется изменить имя, чтобы оно соответствовало вашему фактическому пути к файлу.

При запуске файла с вашими функциями: node app.js dev

мы передаем аргумент dev, и он доступен в нашем приложении node.js, которое было запущено как 3-я позиция process.argv.

В файле:

const env = process.argv[2] === "dev"

const localUrl = localUrlBase + apiEndpoint;
const onlineUrl = onlineURLBase + apiEndpoint;
const urlToUse = env ? localUrl : onlineUrl;   

Тогда просто проверьте, создана ли переменная env.

...