【发布时间】:2019-09-11 17:17:13
【问题描述】:
运行firebase deploy 或firebase deploy --only functions 或firebase deploy --only functions:functionName 给我Error: An unexpected error has occurred.
不要将此问题标记为重复,因为我已经搜索了类似问题的每个答案,但没有解决问题。大约一个月前,我上次成功使用了 Firebase 云功能,但昨天我添加了一个新功能,当我尝试部署它时,我得到了那个错误。从那时起,我可能已经卸载/安装了 5 次节点,版本 6.x、8.x 和最新的 10.x,我创建了新的 firebase 项目,尝试部署初始化云功能时出现的“helloworld”功能,但没有任何效果.
我从这里 (https://nodejs.org/en/download/) 下载节点,最新版本 10.15.3。 我知道在云函数文档 (https://firebase.google.com/docs/functions/get-started) 中说“云函数可以在 Node v6 或 Node v8 上运行。”但是 Doug Stevenson (https://www.youtube.com/watch?v=DYfP-UIKxH0&list=PLl-K7zZEsYLkPZHe41m4jfAxUi0JjLgSM) 在本教程中使用 v9.5.0 没有问题,我有还尝试了多个 v6 和 v8 版本,但它不适用于 v10 并且存在相同的问题。
所以在我下载到“D:\node”目录后,我可以运行这些命令:
C:\Users\PC>node --version
v10.15.3
C:\Users\PC>npm --version
6.4.1
C:\Users\PC>npm version
{ npm: '6.4.1',
ares: '1.15.0',
cldr: '33.1',
http_parser: '2.8.0',
icu: '62.1',
modules: '64',
napi: '3',
nghttp2: '1.34.0',
node: '10.15.3',
openssl: '1.1.0j',
tz: '2018e',
unicode: '11.0',
uv: '1.23.2',
v8: '6.8.275.32-node.51',
zlib: '1.2.11' }
安装程序还在“C:\Users\PC\AppData\Roaming\npm”目录中添加了 npm,并为“C:\Users\PC\AppData\Roaming”和“D:\node”添加了环境变量 然后我转到 D:\node 目录并运行以下命令:
npm install -g firebase-tools
然后我用这个检查firebase版本
D:\node>firebase --version
6.7.0
然后我执行firebase login 表明我已经登录,我执行firebase list 正确显示我的firebase 项目。
然后我创建空文件夹 newFunctions 并运行以下命令:
firebase init functions
我选择相同的项目,打字稿作为语言并等待设置完成,
import * as functions from 'firebase-functions';
// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
export const helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
这是在 index.ts 文件中创建的默认函数, 然后我将目录更改为 newFunctions\functions 并运行此命令,就像 Doug 在上面那个视频中所做的那样:
npm install firebase-functions@latest firebase-admin@latest --save
它在函数目录中添加了 node_modules 文件夹。
然后我运行firebase deploy (tried with firebase deploy --only functions also)
我明白了:
在寻找答案时,我发现我可以使用 --debug 运行带有更多信息的命令:
firebase deploy --debug --only functions
我明白了:
+ functions: functions folder uploaded successfully
[2019-04-22T13:44:45.305Z] TypeError: Cannot read property 'match' of undefined
at exports.getAppEngineLocation (C:\Users\PC\AppData\Roaming\npm\node_modules\firebase-tools\lib\functionsConfig.js:41:27)
at module.exports (C:\Users\PC\AppData\Roaming\npm\node_modules\firebase-tools\lib\deploy\functions\release.js:83:29)
at _chain (C:\Users\PC\AppData\Roaming\npm\node_modules\firebase-tools\lib\deploy\index.js:22:40)
at C:\Users\PC\AppData\Roaming\npm\node_modules\firebase-tools\lib\deploy\index.js:69:16
at process._tickCallback (internal/process/next_tick.js:68:7)
Error: An unexpected error has occurred.
一些遇到类似错误的人使用 node v6 解决了问题,我也尝试过,但遇到了同样的错误。 我失去了 10 多个小时试图解决这个不是由我或我的代码引起的问题。
【问题讨论】:
-
看起来这是与 npm 本身有关的错误。在尝试通过
npm install重新安装之前,您是否尝试过删除 package-lock.json 并删除 node_modules/ 文件夹? -
我只是这样做了,没有任何改变。我删除了 package-lock.json 文件和 node_modules 文件夹,然后我在我的函数文件夹中运行 npm install ,它安装了 node_modules 文件夹,在我运行 firebase deploy 后我得到了同样的错误
-
我也有同样的问题。我使用此命令“firebase use project-id”和部署工作将目标更改为另一个项目。重新调整到我的原始目标项目时,错误再次出现。这些工具似乎无法从 firebase 检索项目位置。
-
我刚收到 firebase 支持的回复:“很遗憾,最新的 firebase 工具存在问题,我们的工程团队目前正在努力修复它,同时您可以通过降级工具来解决它以下命令 npm install -g firebase-tools@6.6.0 " 这解决了我的问题,我在尝试部署功能时不再收到该错误
标签: node.js firebase npm google-cloud-functions