如何防止 Firebase 云消息传递 (FCM) 中的重复通知

Luí*_*ito 6 android push-notification firebase firebase-cloud-messaging

我目前正在使用 Firebase Cloud Messaging 来实现聊天应用程序来发送推送通知。使用notificationAPI 调用中的字段,Firebase 自动显示它们,而无需手动创建服务并侦听消息。

推送通知非常通用,只是说“您有一条新消息!”,因此在每条新消息中不断添加新推送是没有意义的,如果消息正文内容相同,我需要 firebase 不显示新推送前一个的。

是否可以不实现服务并手动处理通知显示?在文档中找不到此用例的引用。

Bir*_*ngh 3

onReceive如果您的应用程序位于前台,那么您会在FirebaseMessagingService中收到通知。否则通知将发送到系统通知托盘。由于您不知道通知的 ID,因此您可能无法检索它。当您收到通知时,您的应用程序也可能尚未运行。因此从逻辑上讲,即使实施该服务也是不可能的。那么你可以通过另一种方法来解决这个问题。您可以将Firebase Database与Cloud Functions结合使用。只要看看云函数的开发者指南,你就会发现它们可以帮助你实现你想要的。作为解决方案框架:将消息发布到 Firebase 数据库并使用云功能发送通知。当收件人读取消息时,更新数据库以反映消息已被读取,就像看到变量一样。设计您的云函数,使其读取最后一条消息的可见值,并仅在该值为真时才发送通知。希望这可以帮助。