如何使用 javascript 从云功能接收通知负载到网站

how to receive notification payload from cloud function to website using javascript

我目前正在学习 firebase 云函数和 firebase 云消息传递,所以我对网络上的云函数和 FCM 还很陌生。我怎样才能从云函数接收通知负载并在网页上显示该通知?我想利用 Firebase Cloud Messaging 来做到这一点。到目前为止,这些文件对我来说有点混乱。该网站正在使用 Javascript。云函数的代码如下:


'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.");


      });


    });


  });






});


messaging.setBackgroundMessageHandler(function(payload) {
   console.log('[firebase-messaging-sw.js] Received background message ', payload);
   // Customize notification here
   const notificationTitle = 'Background Message Title';
   const notificationOptions = {
     body: 'Background Message body.',
     icon: '/firebase-logo.png'
   };
 
   return self.registration.showNotification(notificationTitle,
     notificationOptions);
 });