Firebase 函数在部署时抛出异常

Posted

技术标签:

【中文标题】Firebase 函数在部署时抛出异常【英文标题】:Firebase functions throwing exception on deploy 【发布时间】:2021-11-30 17:04:17 【问题描述】:

我创建了一些 firebase 函数来在 Firestore 中发生数据更改时发送通知。它在我的最后一台计算机上运行良好,并且在每次更新时都能正确发送通知。

但是当我更换计算机并尝试将 index.js、package.json 等所在的文件夹从旧计算机复制粘贴到新计算机时,问题就开始了。

现在,当我尝试通过在命令提示符中指定文件夹路径来使用命令时,它会抛出一些错误,我试图从过去 5 天开始修复但能够做到。我对 firebase 函数及其命令并不陌生。

除了 index.js,我将所有内容都粘贴在下面,因为它只有一个在最后一台计算机上运行的功能。如果需要,我也会在此处粘贴。

下面是我的函数文件夹。

.eslintrc:

module.exports = 
root: true,
env: 
es6: true,
node: true,
,
extends: [
"eslint:recommended",
"google",
],
rules: 
quotes: ["error", "double"],
,
;

package.json

     
      "name": "functions",
      "description": "Cloud Functions for Firebase",
      "scripts": 
      "lint": "eslint .",
      "serve": "firebase emulators:start --only functions",
      "shell": "firebase functions:shell",
      "start": "npm run shell",
      "deploy": "firebase deploy --only functions",
      "logs": "firebase functions:log"
      ,
      "engines": 
      "node": "14"
     ,
    "main": "index.js",
    "dependencies": 
    "firebase-admin": "^9.8.0",
    "firebase-functions": "^3.14.1"
    ,
   "devDependencies": 
   "eslint": "^7.6.0",
   "eslint-config-google": "^0.14.0",
   "firebase-functions-test": "^0.2.0"
   ,
   "private": true
   

npm 错误日志:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   '--prefix',
1 verbose cli   'D:\\AmaKala_Project\\functions',
1 verbose cli   'run',
1 verbose cli   'lint'
1 verbose cli ]
2 info using npm@6.14.15
3 info using node@v14.18.0
4 verbose run-script [ 'prelint', 'lint', 'postlint' ]
5 info lifecycle functions@~prelint: functions@
6 info lifecycle functions@~lint: functions@
7 verbose lifecycle functions@~lint: unsafe-perm in lifecycle true
8 verbose lifecycle functions@~lint: PATH: C:\Program 
Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp- 
bin;D:\AmaKala_Project\functions\node_modules\.bin;C:\Program Files 
(x86)\Common    Files\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\Syst 
 em32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program 
 Files\Git\cmd;C:\ProgramFiles\nodejs\;C:\Users\Ranjit\AppData\Local\Microsoft\WindowsApps;C:\Users\ 
 Ranjit\AppData\Roaming\ 
 npm
 9 verbose lifecycle functions@~lint: CWD: D:\AmaKala_Project\functions
 10 silly lifecycle functions@~lint: Args: [ '/d /s /c', 'eslint .' ]
 11 silly lifecycle functions@~lint: Returned: code: 1  signal: null
 12 info lifecycle functions@~lint: Failed to exec lint script
 13 verbose stack Error: functions@ lint: `eslint .`
 13 verbose stack Exit status 1
 13 verbose stack     at EventEmitter.<anonymous> (C:\Program 
 Files\nodejs\node_modules\npm\node_modules\npm- 
 lifecycle\index.js:332:16)
 13 verbose stack     at EventEmitter.emit (events.js:400:28)
 13 verbose stack     at ChildProcess.<anonymous> (C:\Program 
 Files\nodejs\node_modules\npm\node_modules\npm- 
 lifecycle\lib\spawn.js:55:14)
 13 verbose stack     at ChildProcess.emit (events.js:400:28)
 13 verbose stack     at maybeClose (internal/child_process.js:1058:16)
 13 verbose stack     at Process.ChildProcess._handle.onexit 
 (internal/child_process.js:293:5)
 14 verbose pkgid functions@
 15 verbose cwd D:\AmaKala_Project
 16 verbose Windows_NT 10.0.19042
 17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program 
 Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "--prefix" 
 "D:\\AmaKala_Project\\functions" 
 "run" "lint"
 18 verbose node v14.18.0
 19 verbose npm  v6.14.15
 20 error code ELIFECYCLE
 21 error errno 1
 22 error functions@ lint: `eslint .`
 22 error Exit status 1
 23 error Failed at the functions@ lint script.
 23 error This is probably not a problem with npm. There is likely 
 additional logging output above.
 24 verbose exit [ 1, true ]

cmd 错误:

如果需要粘贴任何文件,请告诉我。 非常感谢

firebase.json


 "functions": 
 "source": "functions",
 "predeploy": [
  "npm --prefix \"$RESOURCE_DIR\" run lint"
 ]


【问题讨论】:

【参考方案1】:

做一件事删除 node_modules 并先执行 npm install

编辑:

您也可以使用此链接作为参考:https://github.com/firebase/firebase-tools/issues/822#issuecomment-406754186

【讨论】:

当然..让我试试 我手动删除了 node_modules 文件夹并执行了 npm install。然后我执行了 filebase deply --only 功能。但它从命令提示符抛出相同的错误。我需要在 firebase.json 文件中做些什么吗?它在函数文件夹之外。我在问题中也添加了 firebase.json 文件。 将 Firebase json npm --prefix \"$RESOURCE_DIR\" run lint 更改为 npm --prefix %RESOURCE_DIR% run lint no..得到同样的错误。 您可以删除 predeploy 或仅使用基于环境的 syntex 参见此链接github.com/firebase/firebase-tools/issues/…

以上是关于Firebase 函数在部署时抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

在函数内部发生错误时抛出异常

SqlDataReader 在尝试将数据加载到 DataGrid WPF 时抛出异常

removeItem(at: ) 成功删除目标文件时抛出异常

Java 异常 重写方法时抛出异常

在继承中重写方法时抛出异常的问题

java写的excel导出时抛出的异常