【发布时间】:2020-09-28 09:44:53
【问题描述】:
我目前正在学习 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.");
});
});
});
});
【问题讨论】:
-
您的问题是关于如何在您的应用中显示 FCM 消息?这是您要查找的文档吗:firebase.google.com/docs/cloud-messaging/js/receive?
-
问题是如何从云功能服务中检索通知负载,如上面的 node.js 代码所示,然后在我的 Web 应用程序上显示该通知。我想使用 FCM
-
抱歉,您的目标对我来说并不明确:您是否想从云功能发送 FCM 消息,并在用户接收后将其显示在 Web 应用程序中。如果这是您的目标,恕我直言,我上面提到的文档包含答案。如果您的目标不同,请分享更多详细信息。
-
我正在使用云函数触发器来触发这些通知。所以我想传递通知有效负载,即来自云函数的消息和发件人 ID
标签: javascript node.js firebase google-cloud-functions firebase-cloud-messaging