我已经设置了一个可以通过以下方式与Firebase云消息传递(FCM)配合使用的Android应用:
这样可行,但我面临的问题是确定将消息发送到哪个FCM令牌。 Firebase云消息传递的工作方式是在应用程序在后台运行时传递消息。我不希望这样,因为它不必要,浪费了用户和我的应用服务器的带宽。
那么我怎样才能将FCM消息发送到打开我的应用程序的设备?我不能简单地查看Google发送FCM消息时的响应,然后删除所有未能发送的FCM令牌,因为即使应用程序在后台或应用程序已被强制停止,响应也会显示消息已成功发送
所以,我可以想到一些可能的解决方案,但我不确定哪个是最好的。它们似乎都不是很好的选择。
我现在倾向于选择#2。但它仍然意味着我的应用服务器必须尝试并且无法向离线设备发送消息。有没有更好的方法让我失踪?
感谢。
答案 0 :(得分:0)
我实际上认为你的方法是错误的。 Firebase专为即时消息应用程序而设计 - 这是服务的重点。当您的应用程序处于打开状态时,您可以使用Firebase数据库和SDK来设置观察者,以便在数据发生变化时实时查看。
当应用程序在后台时,连接终止,然后您需要依赖推送通知。
您应该查看Chat SDK,它是一个使用Firebase的开源即时消息 - 也许它可以为您提供有关如何实现您正在寻找的功能的一些想法。您可以在Github上看到该项目。