我目前正在使用 Firebase Cloud Messaging 实现一个聊天应用程序来发送推送通知。使用 API 调用中的 notification
字段,Firebase 会自动显示它们,而无需手动创建服务和监听消息。
推送通知非常通用,只是说“你有一条新消息!”,所以在每条新消息中继续添加新推送是没有意义的,如果消息正文,我需要 firebase 不显示新推送内容与上一个相同。
是否可以不实现服务并手动处理通知显示?在文档中未找到此用例的引用。
最佳答案
如果您的应用程序在前台,那么您会在 FirebaseMessagingService 的 onReceive
中收到通知。否则通知将传送到系统通知托盘。由于您不知道通知的 ID,因此您可能无法检索它。也有可能您的应用程序在您收到通知时未运行。所以从逻辑上讲,即使通过实现服务,也是不可能可能的。那么你可以通过另一种方法解决问题。您可以将 Firebase Database 与 Cloud Functions 结合使用。看看developer guide of cloud functions你会发现它们可以帮助你实现你想要的。作为解决方案框架:将消息发布到 Firebase 数据库并使用云功能发送通知。当收件人阅读消息时,更新数据库以反射(reflect)消息已被读取,就像看到一个变量一样。设计您的云函数,使其读取上一条消息的已见值的值,并仅在为真时才发送通知。希望这可以帮助。
关于android - 如何防止 Firebase Cloud Messaging (FCM) 中的重复通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45019949/