模拟器的Firebase函数,部署时忽略

fcipmucu  于 2023-04-07  发布在  其他
关注(0)|答案(2)|浏览(139)

我正在寻找一种方法来排除一些firebase函数,当我运行firebase deploy。但我想保留这些功能,当我运行模拟器。
当我使用flutter驱动程序执行集成测试时,我的应用程序连接到模拟器,我需要一些方法来从我的测试脚本更改firestore中的数据。一个firebase函数,我可以使用http包调用它将是一个很好的方法。但是这些模拟器特定的函数不能部署到生产环境中。我知道我可以使用--only标志,当我运行firebase deploy来指定所有函数时,我想部署。但是这有点麻烦。我不想每次都写下我想部署的所有函数的名称。
我知道这个事实,我的firebase.json中的functions-key可以与“ignore”字段一起使用。但我不知道这是如何工作的。所有导出到src/index.ts文件中的函数(编译为lib/src/index. js)都被部署了。那么ignore-key是如何工作的?我试着这样使用它:

{
    "functions": {
    "source": "functions",
    "ignore": [
        "**/node_modules/**",
      "**/src/emulator/**"
    ]
  }
}

但这会导致部署错误。

j91ykkif

j91ykkif1#

我找到了解决问题的方法。

var emulator = undefined;
if(process.env.FUNCTIONS_EMULATOR) {
    emulator = emulatorFunction;
}

export {emulator};

当我运行firebase deploy时,我在模拟器中使用的函数不会部署到生产环境中。

c3frrgcw

c3frrgcw2#

functions.ignore属性没有文档记录,但其工作方式与hosting.ignore属性相同。它默认为['node_modules', '.git'],如您在源代码中所见。
它 * 应该 * 接受类似于. gitignore的glob-like模式。

相关问题