javascript - Hur man skickar en variabel från utsidan av funktionen till ett Firebase-evenemang
Nedan är min kod som körs på en nodeJS-server, jag försöker skicka ett SMS-meddelande så snart 'child_added'-händelsen utlöses
// Twilio Credentials
var accountSid = '<AccountSid>';
var authToken = '<authToken>';
var twilio = require("twilio");
var client = new twilio.RestClient(accountSid, authToken);
// TWILIO Function
client.messages.create({
to: "+12432056980", // This need to be obtained from firebase
from: "+14352058756",
body: "Hey There! Good luck on the bar exam!"
}, function(err, message) {
console.log(message.sid);
});
Nedan är händelsen som triggas så snart ett barn läggs till i Firebase-databasen. Jag skulle vilja anropa TWILIO-funktionen (visad ovan) så snart som nedanstående händelse triggas och även skicka mobilnummervariabeln från nedanstående funktion.
ref.limitToFirst(1).on('child_added', function(snapshot) { // This function triggers the event when a new child is added
var userDetails = snapshot.val();
var mobileNumber = userDetails.mobileNumber;
//*** I would like to call the TWILIO CODE at this point and pass it the 'mobileNumber' parameter
});
Svar #1
Om de två operationerna är inom samma fil kan du bara kapsla in Twilio-anropet i en funktion och anropa det från inom Firebase-operationen på följande sätt...
function sendSMS(dest, msg) {
client.messages.create({
to: dest,
from: "+14352058756",
body: msg
}, function(err, message) {
console.log(message.sid);
});
}
ref.limitToFirst(1).on('child_added', function(snapshot) {
var userDetails = snapshot.val();
var mobileNumber = userDetails.mobileNumber;
sendSMS(mobileNumber, "Hey There! Good luck on the bar exam!");
});
Om Twilio-operationen finns i en annan fil kan du exportera den och kräva den där du använder Firebase
//twiliofile.js
module.exports.sendSMS = function(dest, msg) {
client.messages.create({
to: dest,
from: "+14352058756",
body: msg
}, function(err, message) {
console.log(message.sid);
});
}
-
//firebasefile.js
var sms = require('./twiliofile.js');
ref.limitToFirst(1).on('child_added', function(snapshot) {
var userDetails = snapshot.val();
var mobileNumber = userDetails.mobileNumber;
sms.sendSMS(mobileNumber, "Hey There! Good luck on the bar exam!");
});
