Email notifications in firebase -
i know if knows way can send email when specific node in firebase created, updated or deleted?
more specifically, have web service users can book each other period of time. use firebase backend store user information , on want send confirmation users' email address whenever booking has occurred. understand has been possible using zapier, no longer support firebase.
anyone has workaround or idea on how send email notifications in firebase?
after searching more found there no direct plugin. contacted firebase support team , considering create functionality themselves; however, when , how not yet decided.
there different possibilities require kind of end coding, meaning server can watch these changes.
landed on node.js similar work on, i.e. javascript.
including nodemailer , firebase through npm, sending emails based on firebase event achieved this:
var firebase = require("firebase"); var mainapp = firebase.initializeapp({ //firebase authentication }); var directtransport = require('nodemailer-direct-transport'); var nodemailer = require('nodemailer'); var options = {}; var transporter = nodemailer.createtransport(directtransport(options)) var nodemailer = require('nodemailer'); var transporter = nodemailer.createtransport({ service: 'gmail', auth: { user: 'example.gmail.com' pass: 'password' } }); var nodetowatch = mainapp.database().ref('node_to_watch'); //firebase node watch nodetowatch.on('child_added', function(childsnapshot) { //fires once every node in location if(!childsnapshot.val().email_sent){ //check if email has been sent nodetowatch.child(childsnapshot.key).child('email_sent').set(firebase.database.servervalue.timestamp).then(function(response){ //set email value sent var data = json.stringify(childsnapshot.val(), null, 9); //stringify response can attach in email // create template based sender function var sendinfo = transporter.templatesender({ subject: 'node in firebase updated', html: 'hello, data new node is: {{data}} }, { from: 'example.gmail.com' }); // use template based sender send message sendinfo({ to: 'examplerecipient.email.com' }, { data: data //data variable insert email }, function(err, info){ if(err){ console.log(err); } else{ console.log('email sent'); } }); }); } });
this example listens firebase on_child_added
event firebase event work. hope helps someone! :)
Comments
Post a Comment