簡體   English   中英

Firebase 部署錯誤 - 找不到模塊“firebase”

[英]Firebase deploy error - Cannot find module 'firebase'

我正在嘗試部署從 db 事件觸發的 Google Cloud 函數觸發器,但是當我運行firebase deploy函數未正確部署並且我收到一條錯誤消息Error: Cannot find module firebase

當我第一次創建項目時,我可以毫無問題地部署功能。 自從我上次部署任何東西以來已經有幾天了,但現在我的所有功能都遇到了這個問題(不僅僅是我的觸發功能)

我的功能:

exports.deleteNotificationOnUnlike = functions
    .region("us-central1")
    .firestore.document("likes/{id}")
    .onDelete((snapshot) => {
        return db
            .doc(`/notifications/${snapshot.id}`)
            .delete()
            .catch((err) => console.error(err));
    });

包.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "8"
  },
  "dependencies": {
    "busboy": "^0.3.1",
    "firebase-admin": "^8.0.0",
    "firebase-functions": "^3.1.0"
  },
  "devDependencies": {
    "firebase-functions-test": "^0.1.6"
  },
  "private": true
}

期望功能成功部署但收到此錯誤:

來自 firebase 的錯誤消息:

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'
    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/handlers/users.js:5: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)
{"@type":"type.googleapis.com/google.cloud.audit.AuditLog","status":{"code":3,"message":"INVALID_ARGUMENT"},"authenticationInfo":{"principalEmail":"*********"},"requestMetadata":{"requestAttributes":{},"destinationAttributes":{}},"serviceName":"cloudfunctions.googleapis.com","methodName":"google.cloud.functions.v1.CloudFunctionsService.CreateFunction","resourceName":"projects/*******/locations/us-central1/functions/createNotificationOnComment"}

我看過一些帖子,人們缺少一些模塊,需要在函數文件夾中運行npm i XXX ,但我沒有看到任何實例說找不到 firebase 模塊,而且我我不確定我上次成功部署有什么變化,或者我可能缺少什么模塊。

想出了解決辦法。 我沒有在 functions 文件夾中安裝 firebase 模塊,而是將其包含在functions的父文件夾中。 我進入功能並運行npm install --save firebase並且部署成功。

確保從函數目錄安裝包,而不是項目目錄。 當我在項目目錄中意外安裝軟件包時,我多次收到此錯誤,它在本地運行良好,但在部署期間創建了此類錯誤。 因此,轉到功能並從那里安裝

cd functions
npm install [your package]

然后它通常工作正常

嘗試更新 firebase npm 包,我的解決方法是使用npm install -D firebase

-注意安全!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM