【发布时间】:2018-06-01 19:19:09
【问题描述】:
我通过以下方式发送推送通知:
exports.sendPushNotification =
functions.database.ref('/chat_rooms/{id}').onWrite(event => {
console.log(event);
const original = event.data.val();
const reciverId = original['receiverID'];
const text = original['text'];
const senderName = original['senderName'];
var path = 'fcmToken/' + reciverId;
const payload = {
notification: {
title :senderName,
body: text,
badge:'7',
sound:'default',
}
};
return admin.database().ref(path).once('value').then(allToken => {
if (allToken.val()){
var firebaseReceiverID = allToken.val();
var firebaseToken = firebaseReceiverID['firebaseToken'];
return admin.messaging().sendToDevice(firebaseToken,payload).then(response => {
});
};
});
});
【问题讨论】:
-
是否正在发送当前推送通知?你来这里做什么
console.log(event);? -
添加新的聊天室时执行,否则不执行我想在聊天室中添加味精时执行
-
是的,那是正确的,那么问题是什么?这就是 onWrite 的目的,当在该位置添加任何内容时,它就会被触发。 msg,在数据库中的什么位置?
-
嗨彼得谢谢,问题是如何获取聊天室下添加的最新消息我细化结构应该是这样的functions.database.ref('/chat_rooms/{PerticularChatRoom_id}/{id }').onWrite(event => { } 这里如何获取添加了 msg 的特定聊天室 id
-
functions.database.ref('/chat_rooms/{PerticularChatRoom_id}/{id}').onWrite(event => { }这里具体的聊天室id如何获取
标签: javascript node.js firebase firebase-realtime-database firebase-cloud-messaging