我正在开发一个 android 聊天应用程序,其中有用户可以用来写消息的聊天室。在聊天室中,他们可以选择订阅该聊天室。这样做的目的是在新消息添加到房间时接收推送通知。
我已经使用 Cloud Functions 和 Topics 实现了这个功能。这是我的代码:
exports.pushNotification = functions.database.ref('/messages/{pushId}/{id}').onCreate((change, context) => {
const pushId = context.params.pushId;
const originalText = change.val();
const payload = {
notification: {
title: originalText.message,
body: originalText.sender,
sound: "default"
},
};
const options = {
priority: "high",
timeToLive: 60 * 60 * 24
};
return admin.messaging().sendToTopic(pushId, payload, options);
});
问题如果用户订阅了主题并发送消息,该用户也会收到通知。如何防止发送消息的用户收到通知?
无法抑制向主题中的一个令牌发送消息。您可以将消息发送到主题,也可以不将其发送到主题。
您可以做的是禁止在客户端上显示消息。为此,了解FCM 支持的不同消息类型非常重要:
因此,要完全控制谁可以看到消息,您可以使用数据消息。但是对于聊天应用程序,您也可以考虑使用通知消息,因为在您发送通知时,用户通常会使用该应用程序发送消息。但是,可能存在一些边缘情况,因此如果这些情况妨碍您:发送数据消息,并触发显示来自您自己的应用程序代码的通知。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句