错误:部署谷歌云功能时找不到模块“firebase/app”

Abe*_*emi 0 javascript firebase google-cloud-platform google-cloud-functions google-cloud-firestore

基本上我试图让 firebase 函数简单地在文档中输出值,我只在本地实现了这一点......但该函数不会部署到云。下面是函数

\n\n
const functions = require(\'firebase-functions\');\nconst firebase = require(\'firebase/app\');\nrequire(\'firebase/firestore\');\n\nconst firebaseConfig = {\n    projectId: "covid-info-bw"\n};\n\nconst db = firebase\n.initializeApp(firebaseConfig)\n.firestore()\n\n// // Create and Deploy Your First Cloud Functions\n// // https://firebase.google.com/docs/functions/write-firebase-functions\n//\nexports.helloWorld = functions.https.onRequest((request, response) => {\n  response.send("Hello from Firebase! Dawg I am beast");\n});\n\n\nexports.getData = functions.https.onRequest((req, res) => {\nconst docRef = db.collection(\'FunctionTest\').doc(\'Cm38kBYShNnyuLVpizcy\');\nconst getDoc = docRef.get()\n    .then(doc => {\n    if (!doc.exists) {\n        console.log(\'No such document!\');\n        return res.send(\'Not Found\')\n    } \n        console.log(doc.data());\n        return res.send(doc.data());\n    })\n    .catch(err => {\n    console.log(\'Error getting document\', err);\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是 package.json 中的一个片段

\n\n
"dependencies": {\n  "@firebase/app": "^0.6.1",\n  "@firebase/firestore": "^1.14.0",\n  "@google-cloud/firestore": "^3.7.4",\n  "firebase-admin": "^8.10.0",\n "firebase-functions": "^3.6.0"\n},\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我运行“ firebase deploy --only functions:getData,functions:helloWorld”时遇到的错误

\n\n
\xce\xbb firebase deploy --only functions:getData,functions:helloWorld\n\n=== Deploying to \'covid-info-bw\'...\n\ni  deploying functions\nRunning command: npm --prefix "%RESOURCE_DIR%" run lint\n\n> functions@ lint M:\\VueAdventures\\covid-info-bw\\functions\n> eslint .\n\n+  functions: Finished running predeploy script.\ni  functions: ensuring necessary APIs are enabled...\n+  functions: all necessary APIs are enabled\ni  functions: preparing functions directory for uploading...\ni  functions: packaged functions (41.45 KB) for uploading\n+  functions: functions folder uploaded successfully\ni  functions: current functions in project: getData(us-central1), helloWorld(us-central1)\ni  functions: uploading functions in project: helloWorld(us-central1), getData(us-central1)\ni  functions: updating Node.js 8 function helloWorld(us-central1)...\ni  functions: updating Node.js 8 function getData(us-central1)...\n!  functions[getData(us-central1)]: Deployment error.\n Function failed on loading user code. Error message: Code in file index.js can\'t be loaded. \n Did you list all required modules in the package.json dependencies?\n Detailed stack trace: Error: Cannot find module \'firebase/app\'\n    at Function.Module._resolveFilename (module.js:548:15)\n    at Function.Module._load (module.js:475:25)\n    at Module.require (module.js:597:17)\n    at require (internal/module.js:11:18)\n    at Object.<anonymous> (/srv/index.js:2:18)\n    at Module._compile (module.js:653:30)\n    at Object.Module._extensions..js (module.js:664:10)\n    at Module.load (module.js:566:32)\n    at tryModuleLoad (module.js:506:12)\n    at Function.Module._load (module.js:498:3)\n    !      functions[helloWorld(us-central1)]: Deployment error.\n  Function failed on loading user code. Error message: Code in file index.js can\'t be loaded.\n Did you list all required modules in the package.json dependencies?\n Detailed stack trace: Error: Cannot find module \'firebase/app\'\n    at Function.Module._resolveFilename (module.js:548:15)\n    at Function.Module._load (module.js:475:25)\n    at Module.require (module.js:597:17)\n    at require (internal/module.js:11:18)\n    at Object.<anonymous> (/srv/index.js:2:18)\n    at Module._compile (module.js:653:30)\n    at Object.Module._extensions..js (module.js:664:10)\n    at Module.load (module.js:566:32)\n    at tryModuleLoad (module.js:506:12)\n    at Function.Module._load (module.js:498:3)\n\n\n Functions deploy had errors with the following functions:\n        getData\n        helloWorld\n\n\n To try redeploying those functions, run:\n     firebase deploy --only functions:getData,functions:helloWorld\n\n\n To continue deploying other features (such as database), run:\n     firebase deploy --except functions\n\nError: Functions did not deploy properly.\n
Run Code Online (Sandbox Code Playgroud)\n

Dou*_*son 5

您不应该将 Firebase 客户端 SDK 用于后端代码。您想要做的事情只能使用 Google Cloud Firestore SDK (@google-cloud/firestore) 或 Firebase Admin SDK (firebase-admin,它只编写 Cloud SDK) 来实现。只需删除 Firebase 客户端 SDK(以 @firebase 开头)并仅使用您喜欢的后端 SDK。