首页 > 解决方案 > 如何将变量传递给 firebase serve --only 函数来切换数据库进行测试?

问题描述

firebase serve --only functions用来在本地模拟我的云功能。

我的云功能可以连接到不同的 firebase 实时数据库。一种用于生产,一种用于测试。现在,我正在手动更改数据库进行测试。这是不好的做法,因为我可能会不小心使用不正确的数据库提交或部署函数。

const mainDb = admin.database();
const testDb = admin.database(testApp);
var currentDb = mainDb;

// Used for testing locally
exports.switchTest = function() {
  currentDb = testDb;
};

// Uncomment this line to use test db
// exports.switchTest();

在不修改我必须切换的文件的情况下触发数据库切换的最佳方法是什么?我可以传入一个类似firebase deploy --only functions --options=test或类似的变量吗?

标签: firebasegoogle-cloud-functionsfirebase-cli

解决方案


通常,开发人员利用 Firebase CLI 使用firebase use命令在 dev/stage/prod 项目之间切换。您可以为每个项目设置别名。

如果您出于某种原因需要将所有内容都包含在单个项目中(可能不是最好的主意),您可以使用环境变量来配置模拟器的运行时属性,并将它们从firebase.config()代码中拉出。


推荐阅读