Bre*_*dan 14 node.js firebase google-cloud-functions
如何使用 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
}
Run Code Online (Sandbox Code Playgroud)
Gui*_*ira 30
在process.env 中,在 firebase 函数项目中,有一个名为FUNCTIONS_EMULATOR的布尔变量,它指示进程是在模拟器上还是在服务器上运行。
这足以确定环境是开发环境还是生产环境。
process.env.FUNCTIONS_EMULATOR === true
Run Code Online (Sandbox Code Playgroud)
Obs:在某些环境中,变量可能是 String 'true'而不是 Boolean true
sul*_*rza 22
process.env截至 2020 年 7 月 28 日和 package.json
"dependencies": {
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.6.1"
},
Run Code Online (Sandbox Code Playgroud)
如果您使用 firebase 启动您的应用程序
firebase emulators:start然后process.env将具有类似的属性
"FUNCTIONS_EMULATOR": "true",
"FIRESTORE_EMULATOR_HOST": "0.0.0.0:5002",
"PUBSUB_EMULATOR_HOST": "localhost:8085"
"FIREBASE_AUTH_EMULATOR_HOST": "0.0.0.0:9099"
Run Code Online (Sandbox Code Playgroud)
如果您使用 firebase 启动您的应用程序
firebase emulators:start --only functions然后process.env将具有类似的属性
"FUNCTIONS_EMULATOR": "true",
Run Code Online (Sandbox Code Playgroud)
基于 process.env,您可以编写 firebase.function 来预填充您的 Firestore 模拟器(不是生产 Firestore)!
export const prepopulateFirestoreEmulator = functions.https.onRequest(
(request, response) => {
if (process.env.FUNCTIONS_EMULATOR && process.env.FIRESTORE_EMULATOR_HOST) {
// TODO: prepopulate firestore emulator from 'yourproject/src/sample_data.json
response.send('Prepopulated firestore with sample_data.json!');
} else {
response.send(
"Do not populate production firestore with sample_data.json"
);
}
}
);
Run Code Online (Sandbox Code Playgroud)
所有 Google Cloud 项目都只是项目,除非您指定其用途不同。由于 Cloud Functions 无法了解 dev 和 prod 之间的区别,因此您需要检查项目的名称,因为这是环境中唯一发生变化的内容。使用自动填充的环境process.env.GCLOUD_PROJECT变量。
这里的其他答案似乎假设这个问题是在询问当地的发展,但事实并非如此。很容易检测代码是否在模拟器中运行,但这并不能帮助您确定底层项目是用于开发还是生产(或其他一些目的)。模拟器中运行的某些代码仍然很可能仅对底层项目产生不良影响,这对于指定为生产的项目来说是不利的。强烈建议针对不同的部署运行和隔离不同的项目,以便其中一个项目的更改不会影响另一个项目。
| 归档时间: |
|
| 查看次数: |
4878 次 |
| 最近记录: |