我已成功为数据写入发送推送通知创建并部署了云功能。
现在我正在尝试一些更复杂的事情。我实施了用于在用户之间发送一对一消息的聊天应用程序,并且每两个用户都有单独的对话节点
messages
|
|-conversation1
| |-messageNode1
| | |-message:abc
| | |-sender:xhgdjsgghsdgj
| | |-receiver: 73gfdsfghsdgfgfsd
| |
| |+-messageNode2
| |+-messageNode3
|
|+-conversation2
|+-conversation3
因此,如果任何消息到达任何对话,则应该向接收器生成推送消息,而不是发送者(我将自己实现该逻辑)。
我面临的主要问题是所有对话都有唯一键以及消息我是否可以实现触发新消息到达任何对话并获取该对话的密钥
当前代码 - >如果有任何新节点添加到 settings2
中exports.sendPush = functions.database.ref('/settings2').onWrite(event => {
return loadUsers().then(users => {
let tokens = [];
for (let user of users) {
tokens.push(user.token);
}
let payload = {
notification: {
title: 'Firebase Notification',
body: 'This Is Message',
sound: 'default',
badge: '1'
}
};
return admin.messaging().sendToDevice(tokens, payload);
});
});