我正在寻找一种方法来排除一些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/**"
]
}
}
但这会导致部署错误。
2条答案
按热度按时间j91ykkif1#
我找到了解决问题的方法。
当我运行
firebase deploy
时,我在模拟器中使用的函数不会部署到生产环境中。c3frrgcw2#
functions.ignore
属性没有文档记录,但其工作方式与hosting.ignore属性相同。它默认为['node_modules', '.git']
,如您在源代码中所见。它 * 应该 * 接受类似于. gitignore的glob-like模式。