如何将变量传递给 firebase serve --only 函数来切换数据库进行测试?

How to pass a variable to firebase serve --only functions to switch databases for testing?

我正在使用 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 之类的变量吗?

通常,开发人员利用 Firebase CLI 通过使用 firebase use 命令在 dev/stage/prod 的项目之间切换。您可以 set up aliases 为您的每个项目。

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