FCM应用卸载后未退订主题的消息发送问题咨询
FCM主题订阅与卸载用户消息发送问题
我的应用支持用户点击按钮订阅FCM主题以接收通知,也可点击按钮退订主题。现咨询以下场景:10000名用户安装应用并订阅主题,其中2000名用户未退订主题便直接卸载应用。当开发者通过服务器向该主题发送FCM数据负载时:
- Firebase是否会识别这2000名已卸载应用的用户,不再向他们发送消息?
- Firebase是否仍会尝试发送并产生错误?开发者是否需要手动为这些用户退订以减少错误和Firebase负载,还是Firebase会自动处理?目前我的应用未在服务器存储客户端Firebase Token。
解答
- 问题1解答:Firebase会自动识别已卸载应用的用户,不会向他们发送消息。FCM会持续维护设备令牌的有效性,用户卸载应用后,对应的设备令牌会被标记为无效,后续发送主题消息时会自动跳过这些无效令牌。
- 问题2解答:Firebase不会反复尝试向无效令牌发送消息,也不会产生大量无用错误。FCM内置了令牌状态跟踪机制,当检测到令牌无效(比如因卸载导致的消息送达失败),会自动将该令牌从主题订阅列表中移除,开发者完全不需要手动为这类用户退订,即便服务器没有存储客户端Firebase Token也不影响。
订阅主题示例代码
FirebaseMessaging.getInstance().subscribeToTopic("topicname") .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { String msg = "Subscribed"; if (!task.isSuccessful()) { msg = "Subscribe failed"; } Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
内容的提问来源于stack exchange,提问作者jnet
相关产品推荐
相关产品推荐

