【问题标题】:FCM notification unsubscribeFCM 通知退订
【发布时间】:2018-12-20 09:23:19
【问题描述】:

我已经在我的应用中实现了 Firebase 云消息以用于推送通知。一切正常。但是通知甚至让用户从应用程序中注销。如果用户直接卸载了应用程序,那么我如何取消订阅主题通知。如果我订阅了一个主题,现在我取消订阅该主题并订阅新主题,那么我也会收到旧订阅主题的通知。

【问题讨论】:

  • 注意:您最多可以在一个请求中订阅 1,000 台设备。如果您提供的数组包含超过 1,000 个注册令牌,则请求将失败并出现消息/无效参数错误。任何人都可以从这里阅读firebase.google.com/docs/cloud-messaging/admin/…
  • 注意:您最多可以在一个请求中取消订阅 1,000 台设备。如果您提供的数组包含超过 1,000 个注册令牌,则请求将失败并出现消息/无效参数错误。

标签: android firebase push-notification firebase-cloud-messaging


【解决方案1】:

当您卸载应用程序时,处理 FCM 消息和通知的服务也将从设备中删除。因此,卸载后您将不会收到任何推送通知。

【讨论】:

  • 是的,如果取消订阅它可以接受,但如果我订阅了主题并且现在我取消订阅主题并订阅新主题,那么我也会收到旧订阅主题的通知。跨度>
  • 你能发布代码吗?也许流程中有错误。
  • if(isNotificationOn) { FirebaseMessaging.getInstance().unsubscribeFromTopic(Constants.NOTIFCATION_SUBSCRIBE_TOPIC); FirebaseMessaging.getInstance().unsubscribeFromTopic(Constants.NOTIFCATION_SUBSCRIBE_TOPIC+ AppPreferenceManager.getUserGroupId(getActivity())); } else { FirebaseMessaging.getInstance().subscribeToTopic(Constants.NOTIFCATION_SUBSCRIBE_TOPIC); FirebaseMessaging.getInstance().subscribeToTopic(Constants.NOTIFCATION_SUBSCRIBE_TOPIC + AppPreferenceManager.getUserGroupId(getActivity())); }
  • isNotificationOn的值是怎么设置的?
  • 它是开关按钮上的标志,用于订阅和取消订阅通知,它的价值存储在数据库中
【解决方案2】:

如果您正在订阅 fcm 主题,则可以取消订阅该主题,从而不会收到该主题的任何通知。

下面是你需要的方法:

unsubscribeFromTopic(字符串主题)

在此处查看 google firebase 文档:

https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging

【讨论】:

  • 注意:您最多可以在一个请求中取消订阅 1,000 台设备。如果您提供的数组包含超过 1,000 个注册令牌,则请求将失败并出现消息传递/无效参数错误。所有人都没有取消订阅,设备仍然会收到该主题的通知
  • @Imrankhan 好的,然后在 1000 个请求中发送取消订阅请求。创建列表以在第一束中发送 1000 在第二束中发送另外 1000 不要一次发送。
  • 百万用户很难
  • @Imrankhan 百万用户要同时卸载应用?
  • 是的,我的所有应用用户都没有收到消息和取消订阅主题通知的用户,但他们也收到了消息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
  • 2018-06-13
  • 2017-07-01
相关资源
最近更新 更多