J'ai essayé de déployer des fonctions Firebase mais cela continue d'échouer en raison d'un problème avec ESLint. J'ai également essayé de googler la réponse, mais tout ce que je vois est tout grec pour moi.
J'ai également trébuché sur cette et cette réponse mais il semble qu'ils ne s'appliquent pas à mon scénario.
// // 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!");
// });
//import firebase functions modules
const functions = require("firebase-functions");
//import admin module
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
// Listens for new messages added to messages/:pushId
exports.pushNotification = functions.database.ref("/Message").onWrite( event => {
// Grab the current value of what was written to the Realtime Database.
var valueObject = event.data.val();
// Log the event
console.log("Push notification event triggered for " + valueObject.title);
//if(valueObject.title != null) {
//valueObject.photoUrl= "Sent you a photo!";
// }
// Create a notification
const payload = {
data: {
body:valueObject.body,
imgUrl: valueObject.imgUrl,
postUrl: valueObject.postUrl,
title: valueObject.title
},
};
//Create an options object that contains the time to live for the notification and the priority
const options = {
priority: "high",
timeToLive: 60 * 60 * 24
};
return admin.messaging().sendToTopic("Posts", payload, options);
});
0 info it worked if it ends with ok
1 verbose cli [ '/home/xoxo/.nvm/versions/node/v9.5.0/bin/node',
1 verbose cli '/home/xoxo/.nvm/versions/node/v9.5.0/bin/npm',
1 verbose cli '--prefix',
1 verbose cli '/home/xoxo/Android/Projects/FirebaseFunctions/functions',
1 verbose cli 'run',
1 verbose cli 'lint' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prelint', 'lint', 'postlint' ]
5 info lifecycle functions@~prelint: functions@
6 info lifecycle functions@~lint: functions@
7 verbose lifecycle functions@~lint: unsafe-perm in lifecycle true
8 verbose lifecycle functions@~lint: PATH: /home/xoxo/.nvm/versions/node/v9.5.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/xoxo/Android/Projects/FirebaseFunctions/functions/node_modules/.bin:/home/xoxo/.nvm/versions/node/v9.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/Java-8-Oracle/bin:/usr/lib/jvm/Java-8-Oracle/db/bin:/usr/lib/jvm/Java-8-Oracle/jre/bin
9 verbose lifecycle functions@~lint: CWD: /home/xoxo/Android/Projects/FirebaseFunctions/functions
10 silly lifecycle functions@~lint: Args: [ '-c', 'eslint .' ]
11 info lifecycle functions@~lint: Failed to exec lint script
12 verbose stack Error: functions@ lint: `eslint .`
12 verbose stack spawn ENOENT
12 verbose stack at ChildProcess.<anonymous> (/home/xoxo/.nvm/versions/node/v9.5.0/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18)
12 verbose stack at ChildProcess.emit (events.js:160:13)
12 verbose stack at maybeClose (internal/child_process.js:943:16)
12 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
13 verbose pkgid functions@
14 verbose cwd /home/xoxo/Android/Projects/FirebaseFunctions
15 verbose Linux 4.13.0-32-generic
16 verbose argv "/home/xoxo/.nvm/versions/node/v9.5.0/bin/node" "/home/xoxo/.nvm/versions/node/v9.5.0/bin/npm" "--prefix" "/home/xoxo/Android/Projects/FirebaseFunctions/functions" "run" "lint"
17 verbose node v9.5.0
18 verbose npm v5.6.0
19 error file sh
20 error code ELIFECYCLE
21 error errno ENOENT
22 error syscall spawn
23 error functions@ lint: `eslint .`
23 error spawn ENOENT
24 error Failed at the functions@ lint script.
24 error This is probably not a problem with npm. There is likely additional logging output above.
25 verbose exit [ 1, true ]
xoxo@xo9:~/Android/Projects/FirebaseFunctions$ firebase deploy
=== Deploying to 'testproject-a1bda'...
i deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
> functions@ lint /home/xoxo/Android/Projects/FirebaseFunctions/functions
> eslint .
sh: 1: eslint: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! functions@ lint: `eslint .`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the functions@ lint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
npm ERR! A complete log of this run can be found in:
npm ERR! /home/xoxo/.npm/_logs/2018-02-03T22_35_55_608Z-debug.log
Error: functions predeploy error: Command terminated with non-zero exit code1
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "./node_modules/.bin/eslint .",
"serve": "firebase serve --only functions",
"Shell": "firebase experimental:functions:Shell",
"start": "npm run Shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~5.8.1",
"firebase-functions": "^0.8.1"
},
"devDependencies": {
"eslint": "^4.12.0",
"eslint-plugin-promise": "^3.6.0"
},
"private": true
}
S'il vous plaît, qu'est-ce que je fais mal?
La seule façon dont je peux imaginer que votre projet est entré dans cet état est si vous refusez d'autoriser npm à installer des dépendances au moment de la création du projet. Donc, quand vous vous demandez ceci:
? Voulez-vous installer les dépendances avec npm maintenant?
Vous avez peut-être répondu "non". Cela empêcherait l'installation du package eslint et vous verriez cette erreur.
Sinon, vous avez peut-être supprimé le package installé eslint sous node_modules
en quelque sorte. Tu peux courir npm install
à partir du dossier functions
pour recréer tout le nécessaire sous node_modules
.
hé, vous avez juste besoin de retourner quelque chose à partir de cette déclaration
let params = {...};
var firestore = admin.firestore();
var dbRef = firestore.collection('your-collection-name');
dbRef.add(params)
.then((docRef) => {
console.log("doc added with ID ", docRef.id);
return null
})
.catch((err) => {
console.error("Error in adding document ", err);
});
Eu le même problème, j'ai réinstallé npm
npm install npm -g
puis réinitialisé les fonctions Firebase (vous devez écraser tous les fichiers et vous assurer d'installer EsLine le débogage et d'installer toutes les dépendances) oui appuyez sur Y pour toute demande
Firebase init functions
et tout a bien fonctionné après un nouveau déploiement
Firebase deploy
J'ai fait apparaître une erreur similaire. J'ai découvert que mon répertoire contenant le projet firebase s'appelait firebase/database. J'ai supprimé le/et créé le nom de répertoire firebase-database. J'espère que cela aide quelqu'un.