-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
86 lines (74 loc) · 2.69 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
const functions = require('firebase-functions');
// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp();
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
// response.send("Hello from Firebase!");
// });
exports.sendNotification = functions.database.ref('/oneOnOneChats/{chatID}/messages/{messageID}').onWrite((change, context) => {
console.log("Cloud function for sending notifications", 1);
const addedMssg = change.after.val();
const receiverID = addedMssg.receiverId;
console.log("Cloud function for sending notifications", 2);
console.log("Mssg sent is: ", addedMssg.mssgText);
//Don't know what this does
//if (snapshot.previous.val()) {
// return;
//}
const payload = {
notification: {
title: `New message by ${addedMssg.receiverName}`,
body: `${addedMssg.mssgText}`
}
};
console.log("Cloud function for sending notifications", 3);
return admin
.database()
.ref(`users/${receiverID}`)
.once('value')
.then(data => {
console.log('inside', data.val().tokenFCM);
if (data.val().tokenFCM) {
console.log("Cloud function for sending notifications", 4);
return admin.messaging().sendToDevice(data.val().tokenFCM, payload);
}
else{
console.log("Cloud function for sending notifications", 5);
return Error("Profile doesn't exist");
}
});
});
exports.sendData = functions.database.ref('/oneOnOneChats/{chatID}/messages/{messageID}').onWrite((change, context) => {
console.log("Cloud function for sending data", 1);
const addedMssg = change.after.val();
const receiverID = addedMssg.recipient.uid;
console.log("Cloud function for sending data", 2);
console.log("Mssg sent is: ", addedMssg.mssgText);
console.log("The receipient is: ", receiverID);
mssgData = JSON.stringify(addedMssg)
const payload = {
data: {
title: "new mssg",
body: mssgData
}
};
console.log("Cloud function for sending data", 3);
return admin
.database()
.ref(`users/${receiverID}`)
.once('value')
.then(data => {
console.log('inside', data.val().tokenFCM);
if (data.val().tokenFCM) {
console.log("Cloud function for sending data: ", data.val().tokenFCM);
return admin.messaging().sendToDevice(data.val().tokenFCM, payload);
}
else{
console.log("Cloud function for sending data", 5);
return Error("Profile doesn't exist");
}
});
});