如何使用Firebase Cloud Functions检测我的服务器环境是开发环境还是生产环境?
我需要这样的东西:
if (process.env.NODE_ENV === 'development') {
// DO STUFF SPECIFIC TO DEV ENVIRONMENT
}
else if (process.env.NODE_ENV === 'production') {
// DO STUFF SPECIFIC TO PRODUCTION ENVIRONMENT
}
3条答案
按热度按时间eqzww0vc1#
process.env.FUNCTIONS_EMULATOR
在firebase函数项目的process.env中,有一个名为FUNCTIONS_EMULATOR的布尔变量,它指示进程是在模拟器上运行还是在服务器上运行。
这足以确定环境是开发环境还是生产环境。
Obs:在某些环境中,变量可能是String**'true'而不是Booleantrue**
hmmo2u0o2#
你可以依赖
process.env
截至2020年7月28日和package.json
如果您使用Firebase启动应用程序
一米一分一秒
则
process.env
将具有如下属性如果您使用Firebase启动应用程序
firebase emulators:start --only functions
那么
process.env
将具有如下属性用例
基于process.env,你可以编写firebase.function来预填充你的firestore模拟器(不是生产firestore)!
代码示例
2ekbmq323#
所有Google Cloud项目都只是项目,除了您指定其用途的方式。由于Cloud Functions无法知道dev和prod之间的区别,因此您需要检查项目的名称,因为这是环境中唯一会更改的内容。使用自动填充的env变量中的
process.env.GCLOUD_PROJECT
。这里的其他答案似乎是在假设这个问题是关于本地开发的,实际上不是。但这并不能帮助您确定基础项目是用于开发还是用于生产(或其他目的)。在模拟器中运行的某些代码仍然很有可能只对底层项目产生不必要的影响,强烈建议为不同的部署运行和隔离不同的项目,这样一个项目中的更改就不会影响到另一个项目。