我有一个特快专递应用程序,我想在本地作为独立服务器运行在我的机器上,但是,当将它部署到firebase云函数时,我需要将它设置为云功能。
有没有可靠的方法可以知道应用程序在哪个环境中运行,而不需要手动设置env变量,或者什么是最佳实践?
例:
if(isRunningInFirebase()){
exports.myFun=functions.https.onRequest(app)
} else app.listen(3030)
发布于 2018-11-18 13:34:37
有些环境变量在函数运行时和本地模拟函数中自动填充,如文档所示的这里。例如,其中一个是GCLOUD_PROJECT
变量,它被设置为Firebase项目ID。
if(process.env.GCLOUD_PROJECT) {
// running in Firebase environment
}
else {
// running somewhere else
}
发布于 2020-07-21 04:26:00
在运行模拟器时,Firebase现在设置FUNCTIONS_EMULATOR
环境变量:
if (process.env.FUNCTIONS_EMULATOR === 'true') {
functions are on localhost
} else {
functions are on Firebase
}
发布于 2019-05-29 13:04:21
我通过记录process.env进行了一些探索。
当在本地使用firebase函数运行函数时:shell或firebase只提供服务函数,有一堆本地机器类型的节点变量。
运行部署的函数时,位于Firebase函数中。在本地运行时没有设置一个新的节点环境变量:
NODE_ENV: 'production'
因此,要使用它:
if (process.env.NODE_ENV === 'production') {
// running in production cloud environment
} else {
// running locally (shell or serve)
}
https://stackoverflow.com/questions/53361094
复制相似问题