代码之家  ›  专栏  ›  技术社区  ›  Coolalonge

如何在Flatter-like中向所有用户推送通知

  •  0
  • Coolalonge  · 技术社区  · 2 年前

    大家好,我想通过API向firebase中的所有用户发送通知,如下所示:

    `var serverToken ="" ; 
    
    sendNotify(String title , String body , String id) async{
    
    await http.post(
    
    Uri.parse('https://fcm.googleapis.com/fcm/send'),
    
    headers:<String,String>{'Content-Type':'application/json',
    'Authorization':'key=$serverToken',},
    
    body:jsonEncode(
    
      <String,dynamic>{
    
        'notification':<String,dynamic>{
    
          'body':body.toString(),
    
          'title':title.toString()
    
        },
    
        'priority':'high',
    
        'data':<String,dynamic>{
    
          'click_action':'FLUTTER_NOTIFICATION_CLICK',
    
          'id':id.toString()},
    

    //“致”:“全部”<<<<<<&书信电报;在这里,我想把它发送给所有用户,而不是通过令牌})`

    1 回复  |  直到 2 年前
        1
  •  0
  •   griffins    2 年前

    为此,你应该使用主题,

    您需要向用户订阅 all 主题,发送通知时不需要令牌

    基于发布/订阅模式,FCM主题消息允许您向选择了特定主题的多个设备发送消息。您可以根据需要撰写主题消息,FCM可以可靠地将消息路由和传递到正确的设备。

    // subscribe to topic on each app start-up
    await FirebaseMessaging.instance.subscribeToTopic('all');
    
    

    你的数据呢

    
    jsonEncode({
         'topic': "all",
        'data': {
          'via': 'FlutterFire Cloud Messaging!!!',
          'count': _messageCount.toString(),
        },
        'notification': {
          'title': 'Hello FlutterFire!',
          'body': 'This notification (#$_messageCount) was created via FCM!',
        },
      });