web-dev-qa-db-fra.com

Firebase Déployer une erreur - Impossible de trouver le module 'Firebase'

J'essaie de déployer des déclencheurs de fonction de cloud Google qui déclenchent des événements DB, mais quand je cours firebase deploy Les fonctions ne sont pas déployées correctement et je reçois une erreur disant Error: Cannot find module firebase

Lorsque j'ai créé pour la première fois le projet, je pourrais déployer des fonctions sans aucun problème. Cela fait quelques jours que je n'ai rien déployé, mais je reçois maintenant cette question sur toutes mes fonctions (pas seulement mes fonctions de déclenchement)

Ma fonction:

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

Paquet.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
}

S'attendre à ce que les fonctions se déploient avec succès, mais à obtenir cette erreur:

Messages d'erreur de 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"}

J'ai vu des postes où les gens manquaient des modules et ont besoin de courir un npm i XXX À l'intérieur du dossier de fonctions, mais je n'ai vu aucun cas où il disait que le module Firebase ne pouvait pas être trouvé, et je ne sais pas ce qui change de mon dernier déploiement réussi, ou quel module je pourrais manquer .

5
skonz

Figuré la solution. Je n'avais pas installé le module Firebase dans le dossier Fonctions, mais je l'ai inclus dans le dossier parent de functions. Je suis allé dans des fonctions et j'ai couru npm install --save firebase et le déploiement a réussi.

4
skonz