first commit
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
var firebase = require('firebase-admin');
|
||||
var serviceAccount = require('./serviceAccountKey.json');
|
||||
|
||||
/*
|
||||
Examples:
|
||||
Write:
|
||||
firebaseService.write('notification', 1, {
|
||||
a: 1,
|
||||
b: 'd',
|
||||
c:['a','w'],
|
||||
d: [{a:1},{b:2}]
|
||||
})
|
||||
Read Once:
|
||||
firebaseService.read('notification', 1).then(function(notification){
|
||||
console.log(notification);
|
||||
});
|
||||
Update:
|
||||
firebaseService.update('notification', 1, {a:2});
|
||||
usersRef.update({
|
||||
"alanisawesome/nickname": "Alan The Machine",
|
||||
"gracehop/nickname": "Amazing Grace"
|
||||
});
|
||||
Read On Listeners:
|
||||
ref.on("value", function(snapshot) {
|
||||
console.log(snapshot.val());
|
||||
}, function (errorObject) {
|
||||
console.log("The read failed: " + errorObject.code);
|
||||
});
|
||||
Read Previous Listener:
|
||||
ref.on("child_added", function(snapshot, prevChildKey) {
|
||||
var newPost = snapshot.val();
|
||||
console.log("Author: " + newPost.author);
|
||||
console.log("Title: " + newPost.title);
|
||||
console.log("Previous Post ID: " + prevChildKey);
|
||||
});
|
||||
|
||||
Child Changed Listener:
|
||||
// Get the data on a post that has changed
|
||||
ref.on("child_changed", function(snapshot) {
|
||||
var changedPost = snapshot.val();
|
||||
console.log("The updated post title is " + changedPost.title);
|
||||
});
|
||||
|
||||
Child Removed Listener:
|
||||
// Get the data on a post that has been removed
|
||||
ref.on("child_removed", function(snapshot) {
|
||||
var deletedPost = snapshot.val();
|
||||
console.log("The blog post titled '" + deletedPost.title + "' has been deleted");
|
||||
});
|
||||
Order By Listener:
|
||||
ref.orderByChild("height").on("child_added", function(snapshot) {
|
||||
console.log(snapshot.key + " was " + snapshot.val().height + " meters tall");
|
||||
});
|
||||
|
||||
Order By key:
|
||||
var ref = db.ref("dinosaurs");
|
||||
ref.orderByKey().on("child_added", function(snapshot) {
|
||||
console.log(snapshot.key);
|
||||
});
|
||||
|
||||
Limited:
|
||||
var ref = db.ref("dinosaurs");
|
||||
ref.orderByChild("weight").limitToLast(2).on("child_added", function(snapshot) {
|
||||
console.log(snapshot.key);
|
||||
});
|
||||
|
||||
var ref = db.ref("dinosaurs");
|
||||
ref.orderByChild("height").startAt(3).on("child_added", function(snapshot) {
|
||||
console.log(snapshot.key);
|
||||
});
|
||||
|
||||
var ref = db.ref("dinosaurs");
|
||||
ref.orderByKey().endAt("pterodactyl").on("child_added", function(snapshot) {
|
||||
console.log(snapshot.key);
|
||||
});
|
||||
|
||||
var ref = db.ref("dinosaurs");
|
||||
ref.orderByKey().startAt("b").endAt("b\uf8ff").on("child_added", function(snapshot) {
|
||||
console.log(snapshot.key);
|
||||
});
|
||||
Equal To:
|
||||
var ref = db.ref("dinosaurs");
|
||||
ref.orderByChild("height").equalTo(25).on("child_added", function(snapshot) {
|
||||
console.log(snapshot.key);
|
||||
});
|
||||
*/
|
||||
function FirebaseService() {
|
||||
this._transporter = firebase.initializeApp(
|
||||
{
|
||||
// credential: firebase.credential.cert('./serviceAccountKey.json'),
|
||||
credential: firebase.credential.cert(serviceAccount),
|
||||
databaseURL: 'https://konfer-243320.firebaseio.com',
|
||||
},
|
||||
// , 'flashbid-prod'
|
||||
);
|
||||
console.log('Prod Firebase');
|
||||
this._database = this._transporter.database();
|
||||
this._messaging = this._transporter.messaging();
|
||||
|
||||
this.write = function (table, id, payload) {
|
||||
return this._database.ref(table + '/' + id).set(payload);
|
||||
};
|
||||
|
||||
this.read = function (table, id) {
|
||||
return this._database
|
||||
.ref(table + '/' + id)
|
||||
.once('value')
|
||||
.then(function (snapshot) {
|
||||
return snapshot.val();
|
||||
});
|
||||
};
|
||||
|
||||
this.update = function (table, id, payload) {
|
||||
const ref = this._database.ref(table).child(id);
|
||||
ref.update(payload);
|
||||
};
|
||||
|
||||
this.updateSpecific = function (table, id, payload) {
|
||||
return this._database.ref(table + '/' + id).update(payload);
|
||||
};
|
||||
|
||||
this.pushToList = function (table, id, listField, payload) {
|
||||
const ref = this._database.ref(table).child(id).child(listField).push();
|
||||
ref.set(payload);
|
||||
};
|
||||
|
||||
this.sendPushNotification = function (
|
||||
id,
|
||||
title,
|
||||
subs,
|
||||
description,
|
||||
deviceId,
|
||||
) {
|
||||
// This registration token comes from the client FCM SDKs.
|
||||
|
||||
// See the "Defining the message payload" section above for details
|
||||
// on how to define a message payload.
|
||||
var payload = {
|
||||
notification: {
|
||||
title: title,
|
||||
body: description,
|
||||
},
|
||||
data: {
|
||||
title: subs.text,
|
||||
body: subs.desc,
|
||||
action: subs.action,
|
||||
id: id,
|
||||
},
|
||||
};
|
||||
|
||||
// Set the message as high priority and have it expire after 24 hours.
|
||||
var options = {
|
||||
priority: 'high',
|
||||
timeToLive: 60 * 60 * 24,
|
||||
};
|
||||
|
||||
console.log('payload', payload);
|
||||
console.log('device id', deviceId);
|
||||
|
||||
// Send a message to the device corresponding to the provided
|
||||
// registration token with the provided options.
|
||||
return this._messaging.sendToDevice(deviceId, payload, options);
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = FirebaseService;
|
||||
Reference in New Issue
Block a user