Firebase 函数节点 JS:找不到模块“./auth/credential”

问题描述

更新到最新依赖项后,我的 Firebase 函数后端将不会在 firebase emulators:startfirebase functions:shell 中运行。它失败并出现以下异常

- C:\Users\yannk\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)
    at Function.Module._load (internal/modules/cjs/loader.js:690:27)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (C:\Project\projdir\firebase\functions\node_modules\firebase-admin\lib\firebase-namespace.js:23:20)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Module.require (internal/modules/cjs/loader.js:852:19) {"Metadata":{"emulator":{"name":"functions"},"message":"[runtime-status] [23304] Error in handleMessage: {\"frb\":{\"cwd\":\"C:\\\\Project\\\\projdir\\\\firebase\\\\functions\",\"projectId\":\"snapdiscover-luminarcom\",\"triggerId\":\"\",\"emulators\":{\"firestore\":{\"name\":\"firestore\",\"host\":\"192.168.112.113\",\"port\":8080,\"pid\":23900},\"auth\":{\"name\":\"auth\",\"port\":9099}},\"adminSdkConfig\":{\"databaseURL\":\"https://snapdiscover-luminarcom.firebaseio.com\",\"storageBucket\":\"snapdiscover-luminarcom.appspot.com\"},\"socketPath\":\"\\\\\\\\?\\\\pipe\\\\C:\\\\Project\\\\projdir\\\\firebase\\\\functions\\\\23304\"},\"opts\":{\"nodeBinary\":\"C:\\\\Program Files\\\\nodejs\\\\node.exe\",\"env\":{}}} => Error: Cannot find module './auth/credential'\nRequire stack:\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-admin\\lib\\firebase-namespace.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-admin\\lib\\default-namespace.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-admin\\lib\\index.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-functions\\lib\\apps.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-functions\\lib\\providers\\database.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-functions\\lib\\index.js\n- C:\\Users\\yannk\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\emulator\\functionsEmulatorRuntime.js: Error: Cannot find module './auth/credential'\nRequire stack:\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-admin\\lib\\firebase-namespace.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-admin\\lib\\default-namespace.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-admin\\lib\\index.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-functions\\lib\\apps.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-functions\\lib\\providers\\database.js\n- C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-functions\\lib\\index.js\n- C:\\Users\\yannk\\AppData\\Roaming\\npm\\node_modules\\firebase-tools\\lib\\emulator\\functionsEmulatorRuntime.js\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:690:27)\n    at Module.require (internal/modules/cjs/loader.js:852:19)\n    at require (internal/modules/cjs/helpers.js:74:18)\n    at Object.<anonymous> (C:\\Project\\projdir\\firebase\\functions\\node_modules\\firebase-admin\\lib\\firebase-namespace.js:23:20)\n    at Module._compile (internal/modules/cjs/loader.js:959:30)\n    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)\n    at Module.load (internal/modules/cjs/loader.js:815:32)\n    at Function.Module._load (internal/modules/cjs/loader.js:727:14)\n    at Module.require (internal/modules/cjs/loader.js:852:19)"}}
[warn] !  functions: Cannot find module './auth/credential'
Require stack:
- C:\Project\projdir\firebase\functions\node_modules\firebase-admin\lib\firebase-namespace.js
- C:\Project\projdir\firebase\functions\node_modules\firebase-admin\lib\default-namespace.js
- C:\Project\projdir\firebase\functions\node_modules\firebase-admin\lib\index.js
- C:\Project\projdir\firebase\functions\node_modules\firebase-functions\lib\apps.js
- C:\Project\projdir\firebase\functions\node_modules\firebase-functions\lib\providers\database.js
- C:\Project\projdir\firebase\functions\node_modules\firebase-functions\lib\index.js

我试过了

  • 将所有内容更新到最新的依赖项(使用 ncu -u
  • 确保 admin.initializeApp() 被调用

index.ts

import * as admin from 'firebase-admin'


admin.initializeApp()

[...]

我也尝试过显式初始化应用

index.ts

import { ServiceAccount,initializeApp,credential } from 'firebase-admin' 
import * as serviceAccount from './api-key.json'


initializeApp({
    credential: credential.cert(<ServiceAccount>{
        projectId: serviceAccount.project_id,clientEmail: serviceAccount.client_email,privateKey: serviceAccount.private_key
    })
})
[...]

两者都给出相同的错误。我需要在将代码部署到后端之前对其进行测试。 任何帮助或提示表示赞赏。谢谢

编辑:现在出现一个错误

[warn] !  TypeError: util.assign is not a function
    at Object.<anonymous> (C:\Project\projdir\firebase\functions\node_modules\qs\lib\formats.js:13:23)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (C:\Project\projdir\firebase\functions\node_modules\qs\lib\utils.js:3:15)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10) {"Metadata":{"emulator":{"name":"functions"},"message":"TypeError: util.assign is not a function\n    at Object.<anonymous> (C:\\Project\\projdir\\firebase\\functions\\node_modules\\qs\\lib\\formats.js:13:23)\n    at Module._compile (internal/modules/cjs/loader.js:959:30)\n    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)\n    at Module.load (internal/modules/cjs/loader.js:815:32)\n    at Function.Module._load (internal/modules/cjs/loader.js:727:14)\n    at Module.require (internal/modules/cjs/loader.js:852:19)\n    at require (internal/modules/cjs/helpers.js:74:18)\n    at Object.<anonymous> (C:\\Project\\projdir\\firebase\\functions\\node_modules\\qs\\lib\\utils.js:3:15)\n    at Module._compile (internal/modules/cjs/loader.js:959:30)\n    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)"}}

这是我的 package.json

{
  "name": "functions","scripts": {
    "lint": "tslint --project tsconfig.json","build": "tsc","serve": "npm run build && firebase emulators:start --only functions","shell": "npm run build && firebase functions:shell","start": "npm run shell","deploy": "firebase deploy --only functions","logs": "firebase functions:log","test": "mocha --reporter spec"
  },"engines": {
    "node": "10"
  },"main": "lib/index.js","dependencies": {
    "@types/axios": "^0.14.0","axios": "^0.21.1","bad-words": "^3.0.4","capitalize-sentence": "^0.1.5","crypto": "^1.0.1","firebase-admin": "^9.6.0","firebase-functions": "^3.13.2","firebase-tools": "^9.8.0","perspective-api-client": "^3.1.0","qs": "^6.10.1"
  },"devDependencies": {
    "firebase-functions-test": "^0.2.3","mocha": "^8.3.2","tslint": "^5.20.1","typescript": "^4.2.3"
  },"private": true
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...