Firebase 部署错误 - 找不到模块 'firebase'

标签 firebase firebase-realtime-database google-cloud-firestore google-cloud-functions

我正在尝试部署从 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在functions文件夹中,但我没有看到任何实例说找不到firebase模块,而且我不确定上次成功部署发生了什么变化,或者我可能缺少什么模块。

最佳答案

确保从函数目录安装包,而不是项目目录。当我在项目目录中意外安装软件包时,我多次收到此错误,它在本地运行良好,但在部署期间创建了此类错误。因此,转到功能并从那里安装

cd functions
npm install [your package]
然后它通常工作正常

关于Firebase 部署错误 - 找不到模块 'firebase',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57342258/

相关文章:

javascript - Firebase POST 自定义 ID

react-native - redux-persist/createPersistoid : error serializing state TypeError: Converting circular structure to JSON

javascript - Firestore 方法之间的区别 docRef.set(someData, {merge :true}) and and docRef. update(someData)?

javascript - 运行 Firebase 函数测试时出现 "path"中的类型错误

java - Firebase 获取值返回 NULL 值

ios - 如何更改 Firebase Analytics for iOS 中的最小 session 持续时间值?

javascript - Firebase 实时数据库 CORS 问题

java - 如何在 firebase 的 textview 中显示数据

ios - Firebase:启用持久性后如何使用 observeSingleEvent OfType 获取最新的服务器数据?

firebase - 如何将它从userUid()获取到StreamBuilder Flutter