Firebase Cloud 功能部署错误
Posted
技术标签:
【中文标题】Firebase Cloud 功能部署错误【英文标题】:Firebase Cloud functions deployment error 【发布时间】:2018-08-20 08:55:50 【问题描述】:我已经使用 Firebase 云功能有一段时间了,今天在我的代码中做了一个小错误修复,并在尝试部署时收到以下错误。我撤消了该更改并尝试使用上次提交的稳定更改再次部署,但仍然出现相同的错误。有什么解决办法吗? PS:这是一个打字稿项目,我用 tsc 编译。
Deployment error.
Function load error: Code in file lib/index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /user_code/node_modules/request/node_modules/sntp/lib/index.js:19
exports.time = async function (options = )
^^^^^^^^
SyntaxError: Unexpected token function
【问题讨论】:
你用的是什么节点版本? 我刚开始遇到与今天相同的问题。星期五一切正常。我的节点版本是 v6.11.5 和 npm 3.10.10 和上面@sashok_bg一样的错误? 这有关系吗?因为它被部署在我猜想在节点 6+ 中运行的 firebase 中。打字稿编译工作。然而,我的节点版本是 8.5.0 完全一样,但使用 gcloud 而不是 firebase 【参考方案1】:我遇到了同样的错误。 就我而言,将 Node 版本更改为 8 修复了此错误。
https://medium.com/google-cloud/migrating-firebase-cloud-functions-to-node-8-aebdb0d3d9a9
Function failed on loading user code. Error message: Code in file index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /user_code/node_modules/@google-cloud/logging/node_modules/gaxios/build/src/index.js:28
async function request(opts)
^^^^^^^^
SyntaxError: Unexpected token function
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/user_code/node_modules/@google-cloud/logging/node_modules/gtoken/build/src/index.js:18:18)
【讨论】:
为了时间,根据文档,要使用 Node 6 运行时,您需要使用低于 8.0.0 的 firebase-admin 版本和低于 3.0.0 的 firebase-functions 版本.但是只需更改为 Node 8,因为 Node 6 很快将不受支持,并且 Node 10 在 GCP 上仍处于测试阶段。链接:firebase.google.com/docs/functions/…【参考方案2】:我也遇到过同样的问题,但使用了另一个名为 request
的库。你的情况是sntp
library。
问题是因为不支持使用async wait
更新库版本。
在我的情况下,解决方案是降级 package.json
中的库版本(删除“^”符号),然后在函数文件夹中再次运行 npm install
。
【讨论】:
【参考方案3】:我手动去 GCP 删除了云功能,再次部署,就成功了。
【讨论】:
【参考方案4】:我在使用 gcloud beta 功能和无服务器框架 https://serverless.com/framework/docs/providers/google/ 时遇到了同样的错误消息。
我通过删除本地 .serverless 文件夹并将https://www.npmjs.com/package/@google-cloud/datastore 的版本更新到最新并运行 npm install 解决了我的问题
【讨论】:
以上是关于Firebase Cloud 功能部署错误的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Cloud Functions 部署错误 - 超出配额
Cloud Functions Firebase CLI 预部署错误(打字稿)
如何从 Firebase Cloud 功能中提取已部署的云功能 [重复]
Google Cloud Build - firebase 部署错误:“公共目录 'dist/browser' 不存在,无法将托管部署到站点 PROJECT-ID”