要在android客户端中订阅主题,我们应该调用:
FirebaseMessaging.getInstance().subscribeToTopic("news");
我想知道如果在执行此指令时互联网连接不可用怎么办?
当互联网连接可用时,Google服务会自动重试订阅吗?还是我们应该由开发人员处理这种情况?
最佳答案
更新:subscribeToTopic()
现在返回一个Task<Void>
,因此您可以附加一个OnCompleteListener()
来检查它是否成功。
更新:
因此,根据@DiegoGiorgini在您以前的文章中的评论,似乎还有更多的subscribeToTopic:
我之前尝试过的方式是在给定时间段之后,我将终止该应用程序,而没有再次将其启动。
所以我尝试检查一下。看来,如果在发送订阅请求时设备处于脱机状态,它将重试一段时间(20-30秒左右?),然后如果仍未连接,它将停止。该请求可能达到了超时错误。但是,由于subscribeToTopic()没有返回值,因此您无法通过客户端应用程序确定此返回值。您可以根据需要发送Feature Request。
但是,到目前为止,我认为您可以做的一种方法是在客户端应用程序中安装一个检查器,如果只有设备在线,您将在其中发送请求。
您也可以通过previous post中提到的应用服务器来检查它。
关于Android Firebase云消息传递(FCM): Will subscribeToTopic do automatic retries?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40069466/