【问题标题】:Error: Cannot find module 'firebase/app' When deploying google cloud function错误:部署谷歌云功能时找不到模块“firebase/app”
【发布时间】:2020-04-12 18:46:04
【问题描述】:

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

const functions = require('firebase-functions');
const firebase = require('firebase/app');
require('firebase/firestore');

const firebaseConfig = {
    projectId: "covid-info-bw"
};

const db = firebase
.initializeApp(firebaseConfig)
.firestore()

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
exports.helloWorld = functions.https.onRequest((request, response) => {
  response.send("Hello from Firebase! Dawg I am beast");
});


exports.getData = functions.https.onRequest((req, res) => {
const docRef = db.collection('FunctionTest').doc('Cm38kBYShNnyuLVpizcy');
const getDoc = docRef.get()
    .then(doc => {
    if (!doc.exists) {
        console.log('No such document!');
        return res.send('Not Found')
    } 
        console.log(doc.data());
        return res.send(doc.data());
    })
    .catch(err => {
    console.log('Error getting document', err);
});

这是来自 package.json 的 sn-p

"dependencies": {
  "@firebase/app": "^0.6.1",
  "@firebase/firestore": "^1.14.0",
  "@google-cloud/firestore": "^3.7.4",
  "firebase-admin": "^8.10.0",
 "firebase-functions": "^3.6.0"
},

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

λ firebase deploy --only functions:getData,functions:helloWorld

=== Deploying to 'covid-info-bw'...

i  deploying functions
Running command: npm --prefix "%RESOURCE_DIR%" run lint

> functions@ lint M:\VueAdventures\covid-info-bw\functions
> eslint .

+  functions: Finished running predeploy script.
i  functions: ensuring necessary APIs are enabled...
+  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (41.45 KB) for uploading
+  functions: functions folder uploaded successfully
i  functions: current functions in project: getData(us-central1), helloWorld(us-central1)
i  functions: uploading functions in project: helloWorld(us-central1), getData(us-central1)
i  functions: updating Node.js 8 function helloWorld(us-central1)...
i  functions: updating Node.js 8 function getData(us-central1)...
!  functions[getData(us-central1)]: Deployment error.
 Function failed on loading user code. Error message: Code in file index.js can't be loaded. 
 Did you list all required modules in the package.json dependencies?
 Detailed stack trace: Error: Cannot find module 'firebase/app'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/srv/index.js:2:18)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    !      functions[helloWorld(us-central1)]: Deployment error.
  Function failed on loading user code. Error message: Code in file index.js can't be loaded.
 Did you list all required modules in the package.json dependencies?
 Detailed stack trace: Error: Cannot find module 'firebase/app'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/srv/index.js:2:18)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)


 Functions deploy had errors with the following functions:
        getData
        helloWorld


 To try redeploying those functions, run:
     firebase deploy --only functions:getData,functions:helloWorld


 To continue deploying other features (such as database), run:
     firebase deploy --except functions

Error: Functions did not deploy properly.

【问题讨论】:

    标签: javascript firebase google-cloud-platform google-cloud-firestore google-cloud-functions


    【解决方案1】:

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

    【讨论】:

    • 谢谢...我可以部署并正常工作,但在本地我收到凭据错误...我想知道如何清除它?
    • 我建议提出一个新问题,其中的代码不能按您预期的方式工作。首先确保对该消息进行网络搜索,因为它相当常见。
    猜你喜欢
    • 2018-09-14
    • 2018-03-31
    • 1970-01-01
    • 2020-07-09
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多