Firebase 部署功能 --non-interactive

Posted

技术标签:

【中文标题】Firebase 部署功能 --non-interactive【英文标题】:Firebase deploy function --non-interactive 【发布时间】:2019-02-05 09:50:09 【问题描述】:

我正在集成 CI/CD 以部署我的 firebase 功能。

firebase use PROJECTID --token FIREBASE_TOKEN
firebase deploy --token FIREBASE_TOKEN --non-interactive

现在每当从 index.js 中删除一个函数时,它都会引发以下异常。

错误:在您的项目中找到以下函数,但未找到 存在于您的本地源代码中:httpSeeding(us-central1) Aborting 因为在非交互模式下无法进行删除。修理, 通过运行手动删除函数:firebase functions:delete httpSeeding --region us-central1

在非交互模式下有没有办法在不运行的情况下从控制台中删除已删除的函数 firebase functions:delete httpSeeding??

【问题讨论】:

这是firebase-tools repo 中的相关 PR:github.com/firebase/firebase-tools/pull/949。于 2018 年 10 月 16 日合并。 另一个与firebase-tools相关的公关:github.com/firebase/firebase-tools/pull/999 【参考方案1】:

使用 -f 选项运行 deploy,它应该删除 非交互模式下的额外功能

firebase deploy --token FIREBASE_TOKEN -f

从通过运行firebase help deploy 获得的文档中,我们看到以下选项:

 -f, --force delete Cloud Functions missing from the current working directory without confirmation

【讨论】:

我试过“firebase deploy --token my_token -f --non-interactive”,但它给出了错误“未知选项`-f'” 请检查,不需要使用--non-interactive 另外,你的 firebase cli 版本是什么? 但我必须使用“--non-interactive”,因为它用于自动化 CI/CD。 firebase 工具@6.3.0【参考方案2】:

只需从您的 shell 运行相同的部署命令。它会自动删除源中缺少的函数。

您还可以直接从云控制台删除函数。

【讨论】:

我不想在自动过程中从控制台手动删除它。而且,仅运行“deploy”命令有效,但我将其集成到 CI/CD 中,因此我必须在“deploy”中添加“--non-interactive”,这给了我上述错误。 如果 CLI 不能满足您的需求,请提交功能请求并附上您的用例详细信息。 firebase.google.com/support/contact/bugs-features

以上是关于Firebase 部署功能 --non-interactive的主要内容,如果未能解决你的问题,请参考以下文章

部署firebase云功能时创建功能项目失败

阅读已部署的 Firebase 云功能源 [重复]

部署 Firebase 推送通知功能时出错

在 Firebase 中部署功能时出现 Firebase 未找到错误

由于权限错误,无法部署 Firebase 云功能

无法在 Firebase 云功能中部署 PubSub 功能