I have created a testing project and did configure everything according to documentation, but when I'm running the project, it's not working as expected, before writing this question, I did google and found some duplicate questions but the scenarios are different in each one, so I'm assuming this is not a duplicate question.
here are my terminal command and output:
functions ➤ npm run serve > functions@ serve /Users/codecrash/Developments/crm-firestore/functions > firebase serve --only functions ✔ functions: Using node@8 from host. ✔ functions: Emulator started at http://localhost:5000 i functions: Watching "/Users/codecrash/Developments/crm-firestore/functions" for Cloud Functions... i Your code has been provided a "firebase-admin" instance. i functions: HTTP trigger initialized at http://localhost:5000/demo-crm/us-central1/helloWorld Ignoring trigger "onWrite" because the Cloud Firestore emulator is not running. Ignoring trigger "onUpdate" because the Cloud Firestore emulator is not running. i functions: Beginning execution of "helloWorld" i Your code has been provided a "firebase-admin" instance. i functions: Finished "helloWorld" in ~1s I'm not sure, what's wrong. the helloWorld is working fine but not the onUpdate and onWrite.
I also tried by by running following command,
functions ➤ firebase emulators:start i Starting emulators: ["functions","firestore"] ✔ functions: Using node@8 from host. ✔ functions: Emulator started at http://localhost:5001 i firestore: Logging to firestore-debug.log ✔ firestore: Emulator started at http://127.0.0.1:8080 i firestore: For testing set FIREBASE_FIRESTORE_EMULATOR_ADDRESS=127.0.0.1:8080 i functions: Watching "/Users/codecrash/Developments/crm-firestore/functions" for Cloud Functions... i Your code has been provided a "firebase-admin" instance. i functions: HTTP trigger initialized at http://localhost:5001/demo-crm/us-central1/helloWorld i functions: Setting up Cloud Firestore trigger "onWrite" ✔ functions: Trigger "onWrite" has been acknowledged by the Cloud Firestore emulator. i functions: Setting up Cloud Firestore trigger "onUpdate" ✔ functions: Trigger "onUpdate" has been acknowledged by the Cloud Firestore emulator. i functions: Beginning execution of "helloWorld" i Your code has been provided a "firebase-admin" instance. i functions: Finished "helloWorld" in ~1s but still not luck with onUpdate or onWrite triggers. not sure what I'm doing wrong.
here is my code base:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp({}); exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); }); exports.onWrite = functions.firestore.document('users/{userId}').onWrite((change, context) => { const document = change.after.exists ? change.after.data() : null; const oldDocument = change.before.data(); // perform desired operations ... console.log('local: onWrite change:', change); console.log('local: onWrite context:', context); console.log('local: onWrite document:', document); console.log('local: onWrite oldDocument:', oldDocument); return Promise.resolve(); }); exports.onUpdate = functions.firestore.document('users/{userId}').onUpdate((change, context) => { const document = change.after.exists ? change.after.data() : null; const oldDocument = change.before.data(); // perform desired operations ... console.log('local: onUpdate change:', change); console.log('local: onUpdate context:', context); console.log('local: onUpdate document:', document); console.log('local: onUpdate oldDocument:', oldDocument); return new Promise().then(() => { return Promise.resolve(); }).catch((error) => { return Promise.reject('error:code_crash'); }); }); I added keys in env variable:
GOOGLE_APPLICATION_CREDENTIALS="/Users/codecrash/Developments/crm-firestore/functions/certificate.json" FIREBASE_CONFIG="/Users/codecrash/Developments/crm-firestore/functions/certificate.json" Note: When I'm deploying it on cloud functions, it's working fine.
Thank you.
firebase --version.