使用“错误:发生意外错误”部署Firebase Cloud Function。

时间:2019-04-22 14:04:33

标签: node.js firebase npm google-cloud-functions

运行firebase deployfirebase deploy --only functionsfirebase 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上不起作用,并且存在相同的问题。 enter image description here

因此,在将其下载到“ 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) 我得到这个: enter image description here

在寻找答案时,我发现我可以使用--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个小时的时间来尝试解决不是由我或我的代码引起的此问题。

1 个答案:

答案 0 :(得分:0)

嘿,我不确定您是否进行了这种排序,但是我只是从使用Firebase和云功能开始,并在学习本教程时,第一次部署给了我这个错误。

在这篇文章之后,我通过降级NPM来使其正常工作:

TypeError: Cannot read property 'wanted' of undefined: