我已经设置了一个android应用程序,它可以以以下方式与Firebase消息传递(FCM)一起工作:
这是可行的,但我面临的问题是确定要向哪个FCM令牌发送消息。Firebase消息传递的工作方式是在应用程序在后台运行时传递消息。我不想这样做,因为这是不必要的,浪费带宽给用户和我的应用服务器。
那么,我如何才能将FCM消息发送到打开我的应用程序的设备呢?在发送FCM消息时,我不能简单地查看Google的响应,然后删除所有未能发送的FCM令牌,因为响应会说消息已经成功发送,即使应用程序处于后台,或者应用程序已被迫停止。
因此,我可以想出一些可能的解决方案,但我不确定哪一个是最好的。他们都不是很好的选择。
我现在倾向于第二种选择。但这仍然意味着我的应用服务器不得不尝试将消息发送到离线设备,但却失败了。还有更好的办法让我错过吗?
谢谢。
发布于 2017-05-07 21:47:16
我认为你的做法是错误的。Firebase是为即时消息应用程序设计的--这是服务的全部要点。当应用程序打开时,您可以使用Firebase数据库和SDK来设置观察者,以便在数据更改时实时查看。
当应用程序处于后台时,连接将被终止,然后您将需要依赖推送通知。
您应该查看Chat,它是一个使用Firebase的开源即时通信程序--也许它会给您提供一些关于如何实现您想要的功能的想法。您可以在Github上看到该项目。
https://stackoverflow.com/questions/40498222
复制相似问题