运行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”目录和环境变量“ C:\ Users \ PC \ AppData \ Roaming”和“ D:\ node”中添加了npm 然后我进入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.
有些人也遇到了类似的错误,这是通过使用节点v6解决的,我也曾尝试过,但是遇到了相同的错误。 我损失了超过10个小时的时间来尝试解决不是由我或我的代码引起的此问题。
答案 0 :(得分:0)
嘿,我不确定您是否进行了这种排序,但是我只是从使用Firebase和云功能开始,并在学习本教程时,第一次部署给了我这个错误。
在这篇文章之后,我通过降级NPM来使其正常工作: