I am currently learning firebase cloud functions and firebase cloud messaging so I am fairly new to cloud functions and FCM on the web. How can I be able to receive a notification payload from a cloud function and display that notification on the web page? I would like to utilise Firebase Cloud Messaging to do so. So far the documents are kind of confusing for me. The website is using Javascript. The code of the cloud function is below:
'use-strict'
const functions = require('firebase-functions');
const admin = require ('firebase-admin');
admin.initializeApp();
exports.sendNotification = functions.firestore.document("Employee_Details/{user_id}/Notifications/{notification_id}")
.onWrite((change , context) =>{
const user_id = context.params.user_id;
const notification_id = context.params.notification_id;
//console.log("User ID:" + user_id + "| Notification ID : " + notification_id);
return admin.firestore().collection("Employee_Details").doc(user_id)
.collection("Notifications").doc(notification_id).get().then(queryResult => {
const from_user_id = queryResult.data().from;
const from_description = queryResult.data().description;
const from_incident = queryResult.data().incident;
const receiver_id = queryResult.data().myId;
const from_data = admin.firestore().collection("Employee_Details").doc(from_user_id).get();
const to_data = admin.firestore().collection("Employee_Details").doc(user_id).get();
// console.log("FROM_DAT:" + from_data + "TO_DATA:" + to_data);
return Promise.all([from_data , to_data]).then(result => {
const from_name = result[0].data().first_name;
const to_name = result[1].data().first_name;
const token_id = result[1].data().token_id;
const payload = {
notification: {
title:"Notification from :" + from_name,
body :from_incident + ":" +from_description,
icon : "default",
},
data:{
message: from_description,
from_user_id : from_user_id,
receiver_id : receiver_id
}
};
return admin.messaging().sendToDevice(token_id , payload).then(reuslt =>{
return console.log("Notification sent.");
});
});
});
});