Firebase云函数部署错误

52

我的firebase部署不规律地卡在这个日志上:

i  functions: updating function [FUNCTION NAME]...

取消部署后重试,出现以下错误信息:

⚠  functions: failed to update function resetBadgeCount
⚠  functions: HTTP Error: 400, An operation on function [FUNCTION NAME] 
in region us-central1 in project [PROJECT NAME] is already in progress. 
Please try again later.

看起来部署卡住了,阻塞了后续的部署。过了一会儿,我又能正常地部署函数了。

但是这是为什么呢?也许有解释吗?或者甚至有一个解决方法?

10个回答

61

前往Google云函数控制台,查看您的函数是否有红色感叹号。然后选择该特定函数并尝试删除。一旦从那里被删除,您就可以成功重新部署。如果显示旋转图标,则等待直到它显示为红色标记。


4
它既不显示红旗也不显示旋转器。单个功能的下拉菜单也没有提供删除该功能的选项。 当我打开详细信息时,编辑和删除按钮被禁用,并显示“功能仍在部署中”。 - Martin Bories
它不让我删除这个函数。我们找到的唯一解决方案是开始一个新项目。 - kevando
1
你是救命恩人。我尝试了很多方法。更新 Firebase CLI、更改 Node 版本、查找日志;但是我什么都没找到,也没起作用。直到我删除了函数,问题才解决了。 - The_ehT
2
我最近也遇到了这个问题,大约花了45分钟才停止旋转并出现了红色感叹号。正如所指出的那样,在感叹号出现之前,您不能删除该函数。你只能耐心等待,或者如果你需要继续工作在你的功能上,你可以像另一个回答中提到的那样暂时重命名它。我喜欢Firebase,但是函数部署速度和偶尔的部署问题是他们体验中最糟糕的部分。 - most200
似乎将新的依赖项添加到了“devDependencies”而不是“dependencies”,这导致了问题。我卸载了该依赖项并重新安装了它(没有使用--save或--save-dev,因此它将保存在“dependencies”下)。 - Elron

15

试试这个

你可以使用这个命令打开日志,通过查看实际日志来更轻松地解决问题。

firebase functions:log

具体的问题将在那里可见。有时我甚至会遇到像package.json中缺少软件包这样简单的错误。


1
调试了很多次,却没有意识到日志会有多么有用。我还在package.json中缺少一个包。谢谢! - aeviou
1
谢谢!它帮助我调试了 package.json 的问题。 - Hiimdjango

5
你可以暂时更改你的函数名称:

$ firebase deploy --only functions

...

i functions: 删除 function onSameDataChanged...

i functions: 创建 function onSameDataChanged1...

...

✔ functions: 所有函数都已成功部署!

✔ 部署完成!


2
尝试了一下,但失败了。由于重命名函数而再次卡住了。 - Florian

4
  1. 对你的函数进行注释或剪裁
  2. 部署
  3. 取消注释或黏贴回函数
  4. 重命名函数
  5. 部署
  6. 将函数重新命名
  7. 部署

1

此外,您可以等待几分钟,然后会出现错误信息 {"code":10,"message":"ABORTED"},然后您可以再次部署。


0

只需将您的index.js复制到其他地方,并从firebasa函数控制台中删除function。

  1. firebase init - 并覆盖所有文件
  2. 再次粘贴index.js文本
  3. 部署...

0

对我来说,问题出在 Node 版本上。原来我的电脑上是 15.x 版本,而服务器上是 12.x 版本。只需要更新版本就解决了上传问题。


0

请确保您已在函数目录中安装了依赖项。

有关您的函数的更多信息,您可以访问this page


0

以下是我遇到的一些可能情况:

  1. 项目未初始化 git
  2. functions/ 目录下未安装 node_modules
  3. 如果您已经部署了项目,但重新部署会导致问题,您需要检查 Firebase 仪表板 -> functions -> 您可能会看到一个红色感叹号,表示引起问题的函数,请删除它并重新部署。

-1

将您的目录设置为项目目录\functions,然后运行以下命令: npm install -g firebase-tools


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接