我正在尝试通过FCM从管理界面向用户发送推送通知, 我有一部分用户订阅管理员主题。
当我从Firebase控制台发送通知时,它正在工作。 管理员可以将数据上传到Firebases实时数据库,该数据库包括通知文本和主题(如果缺少某些内容,请告诉我)。
如何编写Firebase 功能,该功能在通知上载到实时数据库时触发,并将通知发送给订阅该主题的用户? 如果有人可以和我分享一个例子,我会感到非常高兴,因为我对node.js不熟悉。 谢谢!
答案 0 :(得分:1)
您需要的是here概述的数据库触发器。您可以编写如下函数:
exports.sendNotification = functions.database
.ref('/notification/{topicId}/messages/{messageId}')
.onCreate((snapshot, context) => {
const topicId = context.params.topicId;
const messageId = context.params.messageId;
const summaryLabel = topicId +"-"messageId;
const receivedOn = Date.now();
const payload = {
data: {
topicId: topicId,
messageId: messageId,
time: receivedOn
},
notification: {
title: "Notification Title",
body: summaryLabel,
icon: '/img/blue_map_icon.png',
click_action: `https://${process.env.GCLOUD_PROJECT}.firebaseapp.com`,
sound: "default"
}
};
const options = {
priority: "high",
timeToLive: 60 * 60 * 2
};
return admin.messaging().sendToTopic(topicId, payload, options);
});