Firebase 不部署新功能,因为它无法删除旧功能?我不能以某种方式忽略缺失的功能吗?

Mic*_*elB 7 firebase google-cloud-functions firebase-cli

我有一个基于节点的 Rest api 应用程序,运行单个 firebase 函数,并且我正在尝试设置 CD 管道来部署暂存函数和另一个生产函数。

我发现实现此功能的唯一方法是拥有“生产.ts”和“staging.ts”,并在每个管道中将相关管道重命名为index.ts。

这有效并且成功,但因为它在那里找不到其他函数,所以它不会发布新函数,而是会恢复所有内容?

这是我上次运行的控制台输出:

  functions: creating Node.js 10 function StagingAPI (europe-west2)...

Error: The following functions are found in your project but do not exist in your local source code:

    ProductionAPI (europe-west2)

Aborting because deletion cannot proceed in non-interactive mode. To fix, manually delete the functions by running:

    firebase functions:delete ProductionAPI --region europe-west2
Run Code Online (Sandbox Code Playgroud)

如果没有另一个完全独立的 firebase 项目,我如何才能以不同的方式实现这一目标?

我可以看到github上有一些关于它的讨论,甚至有一个拉取请求试图通过提供一个标志来解决这个问题:--ignore-existing-functions

但看起来它不会被合并。

这应该是一个普遍的问题。

Dou*_*son 3

如果您想部署单个函数并忽略不属于部署集的现有函数,只需使用--only以下语法:

firebase deploy --only functions:name-of-function
Run Code Online (Sandbox Code Playgroud)

但总体而言,针对不同的环境使用不同的项目要好得多。