좀 더 검색 한 결과 직접 플러그인이 없다는 것을 알았습니다. 나는 firebase 지원팀에 연락하여이 기능을 직접 만들 것을 고려하고 있습니다. 그러나, 언제 그리고 어떻게 결정되지 않았습니다.
다양한 가능성이 있지만 이러한 변경 사항을 볼 수있는 서버를 의미하는 일종의 백 엔드 코딩이 필요합니다.
내가 주로 작업하는 것과 가장 유사하므로 (예 : 자바 스크립트) node.js에 착륙했습니다.
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 to watch
nodeToWatch.on('child_added', function(childSnapshot) { //fires once for every node in this location
if(!childSnapshot.val().email_sent){ //check if email has already been sent
nodeToWatch.child(childSnapshot.key).child('email_sent').set(firebase.database.ServerValue.TIMESTAMP).then(function(response){ //set email value to sent
var data = JSON.stringify(childSnapshot.val(), null, 9); //stringify the response so we can attach it in the email
// create template based sender function
var sendInfo = transporter.templateSender({
subject: 'Node in firebase updated',
html: 'Hello, data for new node is: {{data}}
}, {
from: 'example.gmail.com'
});
// use template based sender to send a message
sendInfo({
to: 'exampleRecipient.email.com'
}, {
data: data //data variable to insert into email
}, function(err, info){
if(err){
console.log(err);
}
else{
console.log('Email sent');
}
});
});
}
});
이 예는 중포 기지 on_child_added
이벤트를 수신하지만 어떤 firebase event 작동합니다 : 중포 기지 이벤트를 기반으로 NPM을 통해 nodemailer 및 firebase을 포함하여
, 보내는 이메일이 같이 이루어졌다. 희망이 사람을 돕는다! :)
개인용 백엔드 서버 또는 firebase 만 사용합니까? – tobifasc
Zapier가 더 이상 작동하지 않으므로 [이 대답의 옵션 2] (http://stackoverflow.com/questions/28656191/send-email-when-match-in-firebase-database)만이 남아 있습니다. 자신의 앱 서버를 실행하십시오. –
@tobifasc 나는 firebase 서버와 함께 일하며 실제 웹 페이지를 호스팅하는 godaddy에 계정을 가지고 있습니다. –