Узнайте, работает ли экспресс-приложение как облачная функция Firebase - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть экспресс-приложение, которое я хочу запускать локально как автономный сервер на своем компьютере, однако при развертывании его для облачных функций Firebase мне нужно установить его в качестве облачной функции.

Есть ли надежный способ узнать, в какой среде работает приложение, без ручной установки переменных env или каков лучший метод?

например:

if(isRunningInFirebase()){
  exports.myFun=functions.https.onRequest(app)
} else app.listen(3030)

Ответы [ 2 ]

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

Я сделал некоторые исследования, зарегистрировав process.env

При локальном запуске функций с использованием функций firebase: shell или firebase служат - только для функций существует множество локальных переменных типа машинного узла.

При запуске развернутой функции в Firebase Cloud Functions. Существует новая переменная среды узла, которая не устанавливается при локальном запуске:

NODE_ENV: 'production'

Итак, чтобы использовать это:

if (process.env.NODE_ENV === 'production') { 
    // running in production cloud environment 
} else { 
    // running locally (shell or serve) 
}
0 голосов
/ 18 ноября 2018

Существуют переменные среды, которые автоматически заполняются во время выполнения функций и в локально эмулируемых функциях, как описано здесь . Например, одна из них - переменная GCLOUD_PROJECT, которая установлена ​​в ID вашего проекта Firebase. Ваше приложение может проверить это следующим образом:

if(process.env.GCLOUD_PROJECT) { 
    // running in Firebase environment 
}
else { 
    // running somewhere else 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...