安卓 Firebase 云消息 (FCM) : Will subscribeToTopic do automatic retries?

标签 android firebase firebase-cloud-messaging

要在 android 客户端中订阅主题,我们应该调用:

FirebaseMessaging.getInstance().subscribeToTopic("news");

我想知道如果在执行此指令时互联网连接不可用会发生什么情况?

当 Internet 连接可用时,Google 服务会自动重试订阅吗?还是我们的开发人员应该处理这种情况?

最佳答案

更新:

subscribeToTopic()现在返回 Task<Void>这样你就可以附上 OnCompleteListener()检查是否成功。


更新:

根据@DiegoGiorgini 在您之前的帖子中的评论,似乎还有更多内容需要订阅主题:

subscribeToTopic will keep retry on background, but it's tied to your app lifecycle (not to google services, yet). So if your app is killed it will stop retrying until the app is open again. (the action is stored so it will be resumed when the app is started again)

我之前尝试的方式是在给定时间段之后,我将终止该应用程序并且不再将其拉起。


所以我试着检查了一下。似乎如果发送订阅请求时设备处于离线状态,它将重试一段时间(20-30 秒左右?),如果仍未连接,则会停止。请求可能遇到超时错误。但是由于 subscribeToTopic() 没有返回值,您无法通过您的客户端应用程序确定这一点。您可以发送 Feature Request如果你愿意,与此有关。

但是,就目前而言,我认为您可以采用的一种方法是在您的客户端应用程序中设置一个检查器,只要设备在线,您就会发送请求。

您也可以通过您的应用服务器进行检查,正如我在您的 previous post 中提到的那样.

关于安卓 Firebase 云消息 (FCM) : Will subscribeToTopic do automatic retries?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069466/

相关文章:

android - 为什么我的 android 微调器看起来很糟糕?

java - 单击按钮时 EditText.getText().toString() 崩溃

android - 按下设备后退按钮时出现 Flutter WebView 异常

swift - 基于 firebase 数据的负载选择器

angularjs - 在 AngularJS 中使用 .controller 方法时无法访问 $location

javascript - FCM JS 客户端 - 提供的 applicationServerKey 无效

android - 收到 Firebase 通知时通知列表适配器

android - 以编程方式设置 textview 焦点颜色/更改主题中的焦点颜色

android - 当应用程序被杀死android时未收到使用FCM的推送通知

firebase - FirebaseAppDelegateProxyEnabled 有什么作用?