我正在创建一个应用程序,其中用户可以订阅多个主题。每当一篇新闻文章在应用程序中共享时,它就会被分配多个主题。每当与用户订阅的主题相关的新闻文章被共享时,用户都会收到推送通知。
假设用户订阅了主题A和B,则属于这两个主题(A和B)的新闻文章将被共享。在这种情况下,在我的代码中发生的事情是,
for(const topic of topics) {
...
admin.messaging().send(message);
...
}因此,用户将收到两个推送通知,一个针对主题A,另一个针对主题B。由于我不是向特定设备而是向主题发送FCM推送通知,因此我无法跟踪是谁收到了推送通知,因此我无法手动阻止重复通知。
有没有办法确保用户不会两次收到相同的fcm推送通知(即只收到topicA的推送通知,而不会收到topic B的推送通知)?
我同时处理服务器端(TypeScript)和客户端(Flutter),因此任何一方的解决方案都将非常感谢!
发布于 2021-07-06 17:15:10
您想要使用的是向所有主题using a condition发送一个对send的调用。
给出您的主题A和主题B的示例,这将是:
const condition = '\'stock-GOOG\' in topics || \'industry-tech\' in topics';
const message = ;
admin.messaging().send({
notification: {
title: 'Your notification title',
body: 'Your notification body'
},
condition: "'TopicA' in topics ||'TopicB' in topics"
})https://stackoverflow.com/questions/68267182
复制相似问题