如何在Flutter FCM中订阅主题?

24

我是Flutter新手,我的应用程序需要实现全局或主题订阅的FCM。我已经成功地使用设备令牌实现了FCM,但需要向所有设备发送通知。我们该怎么解决这个问题?

3个回答

44

当登录成功或者您想订阅时,您可以使用subscribeToTopic将通知发送到所有设备。 示例代码:

FirebaseMessaging firebaseMessaging = new FirebaseMessaging();

  void fcmSubscribe() {
    firebaseMessaging.subscribeToTopic('TopicToListen');
  }

  void fcmUnSubscribe() {
    firebaseMessaging.unsubscribeFromTopic('TopicToListen');
  }

使用Firebase控制台通过选择目标主题,向设备正在侦听的主题发送通知,以测试主题订阅。


1
在调用subscribeToTopic时出现了java.lang.NoSuchMethodError: FirebaseMessaging.subscribeToTopic(Unknown Source)。 - Mashhood Qadeer
有没有办法在Flutter Web上实现这个? - Abdulmalek Dery
@AbdulmalekDery 我还没有尝试过网页部件,希望有人能够回答这个问题。 - Aravindh Kumar
请问您能否更新答案以匹配当前版本的Flutter? - Francisca Mkina
我不得不将其更改为FirebaseMessaging.instance.subscribeToTopic以避免“NoSuchMethod”错误。 - Dennis de Best

11

我可以使用以下代码实现:

await FirebaseMessaging.instance.subscribeToTopic('TopicToListen');

2

在Flutter中进行Web版本开发时,您需要调用主题API。

    Uri.parse('https://iid.googleapis.com/iid/v1/'+_token+'/rel/topics/'+topic),
            headers: <String, String>{
              'Content-Type': 'application/json',
              'Authorization':
                  'key=YOUR_FCM_KEY'
            };

Token是由Firebase生成的令牌。


你能提供更多关于如何使用和放置这个的信息吗?谢谢。 - LeptonByte
这是 API 调用,你可以在应用程序启动时调用一次。 - Shatabhishek Baidya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接