错误:功能未正确部署

时间:2017-05-19 10:15:50

标签: firebase google-cloud-functions

功能部署有错误。要继续部署其他功能(例如数据库),请运行:

firebase deploy --except functions

错误:

  

功能未正确部署。

26 个答案:

答案 0 :(得分:7)

我和Firestore有同样的问题,我的问题是文档的路径很糟糕。我在文档路径的开头和结尾都有一个斜杠,就像我以前使用Firebase实时数据库路径一样。 希望它可以帮助某人。

答案 1 :(得分:5)

我也遇到了这个错误,我遇到了 package.json 文件中缺少依赖项的问题。

通过运行 firebase --debug deploy 它返回了用户代码错误。 firebase functions:log 然后给出了具体信息,即不包含软件包。

答案 2 :(得分:2)

最近 Firebase 允许您使用 Functions,前提是您有 Blaze-Pay as you go 计划。因此,您也无法部署函数,而且您将收到同样的错误消息,无需进一步说明。

答案 3 :(得分:2)

我的是关于;

“功能部署失败,因为结算帐号不可用。”

所以我有待付款,付款后,它按预期工作。

答案 4 :(得分:2)

在我的情况下,经过长时间的搜索,我发现原因是我为了调试而禁用了项目的计费。

Google cloud console 中启用后,它现在工作正常。

firebase 无法显示任何有用的错误消息来提示问题,这真的很令人难过。经过多次试验,我发现了这一点。

答案 5 :(得分:1)

在得到上述部署错误后,我编辑了index.js文件并从" helloWorld"更改了该函数的名称。到" heyWorld"并突然firebase deploy命令工作。

答案 6 :(得分:1)

在我的例子中,firebase 部署失败并出现错误“错误:函数没有正确部署。”并且没有进一步的解释。我注意到即使我没有接触过的功能也无法部署。 因此,我检查了依赖项,发现“package.json”中不存在库。

所以我执行这个命令:cd functions && rm -rf node_modules && rm package-lock.json && npm install && npm install [特定库不在package.json] && npm fund && firebase deploy

之后部署成功,package.json中出现了缺失的依赖

答案 7 :(得分:1)

路径中的

$ 导致 Error: Functions did not deploy properly.

之前:

`export const newMessage = functions.firestore.document('chats/${chatId}/messages/${messageId}').onCreate(handleNewMessage())`

之后:

`export const newMessage = functions.firestore.document('chats/{chatId}/messages/{messageId}').onCreate(handleNewMessage())`

答案 8 :(得分:1)

我遇到了相同的通用错误消息,并最终运行(如本问题所述):

firebase --debug deploy --only functions:[functionName]

这揭示了实际问题(我的项目没有默认的 GCP 资源位置,此处描述了对此的修复:Firebase Project Initialization Error: Cloud resource location is not set for this project

一旦我设置了 GCP 资源位置,函数部署就没有问题!

enter image description here

答案 9 :(得分:1)

有同样的错误,我最终通过更新 package.json 解决了它

来自:

"engines": {
    "node": "12"
 },

到:

"engines": {
    "node": "14"
 },

答案 10 :(得分:1)

我遇到了类似的问题,但我使用的是 Typescript。

它基本上是针对不受支持的 javascript 版本 (ES2020)。我更改了 Scapy 并正常部署

tsconfig.json

答案 11 :(得分:0)

请按照以下步骤操作:

  1. 在启用调试的情况下进行部署: firebase --debug 部署 您将在控制台中看到打印的错误。 在大多数情况下,它类似于以下行:

npm install 在继续之前。\nnpm ERR! \nnpm 错误! \nnpm 错误!无效:锁定文件的 body-parser@1.19.0 不满足 body-parser@~1.0.1\nnpm ERR!

  1. 如果错误类似于上面 1) 中的“lock file's body-parse”: 转到项目中的 views 目录并编辑 package.json 文件中的依赖项部分,如下所示: 将 body-parser 版本更改为上面 1) 中打印的错误中显示的最新版本。就我而言,它是从 body-parser@~1.0.1 到 body-parser@~1.19.0
  2. 运行:npm install
  3. 重新部署:firebase deploy

这应该有效。

如果您在重新部署后从您的托管 URL 中收到 403 错误,则您的 CLI 版本可能已过时:

  1. 登录您的 google 云帐户,然后转到您的 google 云控制台。
  2. 删除您的云函数
  3. 使用以下命令更新 Firebase CLI:npm install -g firebase-tools
  4. 重新部署:firebase 部署

答案 12 :(得分:0)

就我而言,Firestore 的位置设置不正确。来自Functions Documentation

<块引用>

默认情况下,函数在 us-central1 区域运行。

就我而言,Firestore 设置在不同的位置。您可以在项目设置下的 Default GCP resource location 处找到它。

要修复它,只需进行以下更改:

// Before
functions.firestore.document("...").onCreate(...)

// After
functions.region("asia-east2").firestore.document("...").onCreate(...)

答案 13 :(得分:0)

我也遇到了同样的情况,但不幸的是,--debug 没有任何错误。

然后我删除了我在 firebase 控制台中部署的所有函数

cd functions
rm -rf node_modules
npm install
firebase deploy --only functions

它的作用就像魔法一样。

答案 14 :(得分:0)

今天这对我有用:删除函数和重新部署。

答案 15 :(得分:0)

firebase functions:log

这让我能够找出我的案例中的问题:package.json 中的依赖项中没有列出其中一个包

答案 16 :(得分:0)

我删除了 yarn.lock 然后错误消失了。我认为 package-lock.json 和 yarn.lock 不应该同时存在。

答案 17 :(得分:0)

尝试添加这个

“运行时”:“nodejs12”

在你的火力基地,json

示例:

"functions": {
    "source": ".",
    "ignore": [
      ".firebase/**",
      "**/node_modules/**",
      "**/public/**",
      ".firebaserc",
      "firebase.json",
      "postcss.config.js",
      "README.md",
      "tailwind.config.js"
    ],
    "runtime": "nodejs12"
  }

答案 18 :(得分:0)

如果有人来到这里尝试在Firebase中以通用角度部署 ssr函数,那是因为您的函数中不包含firebase。

1。)cd functions

2。)npm i firebase@latest

3。)npm run deploy

4。)cd ..

5。)现在,当您运行ng deploy时,它应该可以正常工作...这里的关键是添加Firebase,并首先使用npm run deploy进行部署...

Functions did not deploy properly.

答案 19 :(得分:0)

删除build函数文件夹对我有用

答案 20 :(得分:0)

我有同样的问题。问题出在我的根文件夹中有index.js文件和package.json文件,并且在运行firebase functions init命令后,在functions文件夹中还有index.js和package.json。依赖关系仅在根文件夹的package.json文件中列出,而在functions文件夹中没有列出。我将依赖项复制到functions文件夹中的package.json文件,一切都像一个超级按钮一样工作。

答案 21 :(得分:0)

我在Firebase项目部署中遇到了同样的问题。然后找出错误并发现某些模块路径是引起问题的原因。然后我更改了该模块的路径。

要尝试重新部署这些功能,请运行: firebase deploy --only functions:api,functions:createScream

要继续部署其他功能(例如数据库),请运行: firebase deploy-功能除外

错误:功能未正确部署。

错误表明找不到模块。

您是否在package.json依赖项中列出了所有必需的模块?
详细的堆栈跟踪:错误:找不到模块( ../ key /您的秘密key.json )'

然后,我更改了登录凭据所需的秘密密钥的路径,并将其放置在其他文件夹中。然后运行firebase deploy。 那对我有用。

答案 22 :(得分:0)

尝试使用--debug运行部署。例如:firebase --debug deploy

就我而言,该函数如下所示:

exports.test = functions.firestore.document('chats').onCreate((snap, context) => {
   ...
});

调试日志包含以下错误消息:

  

fieldViolations = [field = event_trigger,description =期望值聊天以匹配正则表达式[^ /] + / [^ /] +(/ [^ /] + / [^ /] +)*]]

那时我才意识到chats不是文档而是集合。我将路径更改为文档的路径,并且一切正常。

答案 23 :(得分:0)

我的firebase在部署时找不到firebase-functions和firebase-admin模块,因为我在devDependencies中写了它们,而不仅仅是依赖。但是之后...我仍然有一个问题。但这为我解决了问题:https://github.com/nuxt/nuxt.js/issues/2714#issuecomment-423048343

只需注意节点8作为函数文件夹package.json中的引擎对象,并在nuxt配置中添加babel片段。

答案 24 :(得分:0)

只需关闭您正在使用的任何IDE,然后将其重新打开即可。然后在节点上重新部署您的功能。这样可以解决问题。

答案 25 :(得分:-1)

检查函数文件夹中的json模块依赖项。 那里有一个特定的json包。 如果你在项目中包含的某个模块并不存在(在json中),你可能会提到错误。 要安装只是运行:

npm install <module> --save

yarn add <module> --save

然后再次运行部署:

firebase deploy --only functions