了解 Express 应用程序是否作为 Firebase 云功能运行

ang*_*ala 4 node.js express firebase google-cloud-functions

我有一个 Express 应用程序,我想在我的计算机中作为独立服务器在本地运行,但是,当将其部署到 firebase 云功能时,我需要将其设置为云功能。

有没有一种可靠的方法可以知道应用程序在哪个环境中运行而无需手动设置环境变量或者最佳实践是什么?

例如:

if(isRunningInFirebase()){
  exports.myFun=functions.https.onRequest(app)
} else app.listen(3030)
Run Code Online (Sandbox Code Playgroud)

Bre*_*rne 7

FUNCTIONS_EMULATORFirebase 现在在运行模拟器时设置环境变量:

if (process.env.FUNCTIONS_EMULATOR === 'true') {
    functions are on localhost
} else {
    functions are on Firebase
}
Run Code Online (Sandbox Code Playgroud)


Lun*_*ast 5

函数运行时和本地模拟函数中会自动填充一些环境变量,如此处所述。例如,其中之一是GCLOUD_PROJECT变量,它设置为您的 Firebase 项目 ID。您可以让您的应用程序像这样检查它:

if(process.env.GCLOUD_PROJECT) { 
    // running in Firebase environment 
}
else { 
    // running somewhere else 
}
Run Code Online (Sandbox Code Playgroud)

  • [Cloud Functions 文档](https://cloud.google.com/functions/docs/env-var#reserved_keys_key_validation) 正确的内容(不包括 Firebase 添加内容)表明 GCLOUD_PROJECT 是遗留的,而 GCP_PROJECT 是获取项目编号。 (5认同)