Using firebase-functions
with Node and exports.foo = functions.database.ref('/object').onWrite(event => {});
.
I can deploy to the cloud and test just fine ... and I can easily test http-type functions locally using firebase serve --only functions
.
However, I don't see a way to test triggers locally. Is it possible? How?
This in now possible. I finally find this clear medium post which explain how do it : https://medium.com/@moki298/test-your-firebase-cloud-functions-locally-using-cloud-functions-shell-32c821f8a5ce
To run a trigger locally, use the "functions shell" tool :
1 - My code for firestore (the medium post use RealTime Database) :
exports.testTrigger = functions.firestore
.document('messages/{messageId}')
.onCreate((snapshot, context) => {
let message = snapshot.data()
return snapshot.ref.set({
...message,
status : 'sent'
})
})
2 - I run the firebase shell functions in the terminal
firebase functions:shell
3 - I call my "testTrigger" cloud function trigger with data in parameter
testTrigger({text:"hello"})
4- My firestore database has a new "message" updated by my trigger
Since May 21st 2020 it's now possible to test triggers locally!
See release blog post https://firebase.googleblog.com/2020/05/local-firebase-emulator-ui.html
Always good to also take a look at the release notes https://firebase.google.com/support/releases#may_21_2020
And note that 8.4 requires Node 10, as discussed in question Update of Firebase CLI to 8.4.0 gives errors about "Unsupported engine" saying '{"node":">=10"}'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With