Firebase通知按主题

时间:2018-09-26 12:18:11

标签: firebase firebase-cloud-messaging

我是Firebase的新手。我想将通知发送到我的关注者列表(instagram之类的成员组)中。

我为每个用户创建了一个唯一的主题,该用户的所有关注者都将订阅该主题。当我向该主题发送通知时,通知未始终传递给所有关注者。

当用户点击关注按钮时,我订阅的主题是

FirebaseMessaging.getInstance().subscribeToTopic(FollowerUserID);

通过点击取消关注,我正在取消订阅该主题

FirebaseMessaging.getInstance().unsubscribeFromTopic(FollowerUserID);

我已经使用Firebase云功能将通知推送到主题。

如果Firebase令牌已更改为用户,是否需要再次订阅该主题?

我不知道订阅/取消订阅模型如何工作。谁能解释它的工作原理?

请帮助我摆脱这个问题。

建议我向人群(从属)发送通知的最佳方法。

2 个答案:

答案 0 :(得分:0)

第一件事。 如果Firebase用户令牌发生更改,并且该令牌已订阅云消息通知,则他将不再接收任何通知,并且如果他已订阅某个主题,并且该主题发生更改,那么他将不会从新主题收到任何通知

根据您的业务逻辑,我将为每个用户创建一个云消息传递主题,每当有人关注该用户时,我都会将该用户令牌订阅给关注的用户的主题。 例如,用户X跟随用户Y,用户Z跟随用户X。Y和Z都将订阅主题X。

检查此链接 https://firebase.google.com/docs/cloud-messaging/admin/manage-topic-subscriptions

答案 1 :(得分:0)

Firebase Cloud Messaging主题基于实例ID 不是 FCM令牌)进行订阅。实例ID唯一标识一个应用程序设备实例,除非用户卸载该应用程序,否则它不会更改。如果应用程序实例已订阅主题,则该主题将保持订阅状态。尽管FCM令牌会定期刷新,但这不会影响主题订阅。每次刷新令牌时都无需重新订阅用户。有关一些有用的信息,请参见guide。您还可以看到reference,指示subscribeToTopic与实例ID的工作方式。