Javascript 如何使用Firebase云消息向多个设备发送推送通知

Javascript 如何使用Firebase云消息向多个设备发送推送通知,javascript,node.js,express,google-cloud-messaging,firebase-cloud-messaging,Javascript,Node.js,Express,Google Cloud Messaging,Firebase Cloud Messaging,我找到了一种从expressJS服务器向ionic应用程序发送推送消息的方法,我发现了GCM。使用GCM,我可以通过令牌列表传递消息,如下所示: sender.send(message, { registrationTokens: deviceTokens }, function (err, response) { if (err) console.error(err); else console.log('response' + JSO

我找到了一种从expressJS服务器向ionic应用程序发送推送消息的方法,我发现了GCM。使用GCM,我可以通过令牌列表传递消息,如下所示:

 sender.send(message, {
        registrationTokens: deviceTokens
    }, function (err, response) {
        if (err) console.error(err);
        else console.log('response' + JSON.stringify(response));
    });
但是当我发现GCM变成FCM时,我尝试用FCM做同样的事情,但直到现在都没有运气。我听说过发送主题,但找不到示例

有人能举一个例子说明如何使用FCM发送主题消息吗

我的FCM代码:(仅使用1个令牌)

我认为谷歌做得很好。基本上,有两种方法可以向多个组发送通知:

  • :您让客户端订阅特定主题,然后在发送通知时,您只需修改请求以针对特定主题。所有订阅该主题的客户端都将收到该消息

    POST request to this end point.
    
    https://fcm.googleapis.com/fcm/send
    Content-Type:application/json
    Authorization:key=SERVER_AUTHORIZATION_KEY
    
    {
       "to": "/topics/foo-bar",
       "data": {
          "message": "This is a Firebase Cloud Messaging Topic Message!"
       }
    }
    
    订阅特定主题的方式取决于设备上下文。我提供的链接中提到了Android和IOS的文档

  • :这基本上是建立在您提供的方法的基础上的,该方法提供了您想要定位的设备的注册令牌。您可以这样形成一个设备组:

    POST request
    
    https://android.googleapis.com/gcm/notification
    Content-Type:application/json
    Authorization:key=API_KEY
    project_id:SENDER_ID
    
    {
      "operation": "create",
      "notification_key_name": "appUser-Chris",
      "registration_ids": ["4", "8", "15", "16", "23", "42"]
    }
    
  • 以下请求返回一个
    通知\u键
    ,您可以在
    to
    字段中使用该键发送通知。是的,您必须将此
    notification_key
    保存在某个地方,然后像以下那样使用它:

    POST request
    
    https://fcm.googleapis.com/fcm/send
    Content-Type:application/json
    Authorization:key=SERVER_AUTHORIZATION_KEY
    
    {
      "to": "aUniqueKey", //This is your notification_key
      "data": {
        "hello": "This is a Firebase Cloud Messaging Device Group Message!",
       }
    }
    
    当然,您可以从组和所有其他精细控件中添加和删除设备。正如我所提到的,所有这些都有很好的文档记录,应该可以让您在开始时不会遇到任何问题。

    我认为您正在使用库来发送推送通知, 如果要向多个用户发送相同的通知,请使用“注册ID”参数而不是“to”。此标记接受字符串数组

    例: 注册标识:[“注册密钥1”、“注册密钥2”]


    注意:每次限制为100键。

    此答案后,限制可能已更改。现在是1000。我们可以通过多个aUniqueKey向一组设备组发送通知吗?
    POST request
    
    https://fcm.googleapis.com/fcm/send
    Content-Type:application/json
    Authorization:key=SERVER_AUTHORIZATION_KEY
    
    {
      "to": "aUniqueKey", //This is your notification_key
      "data": {
        "hello": "This is a Firebase Cloud Messaging Device Group Message!",
       }
    }