将按摩发送到Firebase云消息传递中的群组设备

时间:2017-04-02 12:33:42

标签: firebase google-cloud-messaging firebase-cloud-messaging

我正在建立聊天,我想在FCM中向群组中的1000个客户端发送消息。消息将从客户端发送到1000个客户端组(消息不通过服务器)。我可以使用主题方法,但如果我想通过组管理员删除客户端,那么它是不可能的。任何人都可以提出解决方案吗?

请帮帮我。

2 个答案:

答案 0 :(得分:1)

主题确实是公开的:您(作为应用的开发者/管理员)无法阻止您的应用用户订阅主题。

如果您想控制执行(而不是)接收邮件的设备,则必须send the message to those specific devices。您可以通过跟踪数据库中这些设备的instance ID tokens,然后在发送下游消息时定位令牌列表来执行此操作。

example of how to manage device tokens and send messages in the Cloud Messaging for Firebase documentation

答案 1 :(得分:0)

如果您只想删除(取消订阅)某些特定成员,则可以使用InstanceID API,特别是batchRemove

  

管理多个应用实例的关系图

     

使用Instance ID服务的批处理方法,您可以执行app实例的批量管理。例如,您可以向FCM或GCM主题执行批量添加或删除应用程序实例。要管理应用程序实例,请在此端点调用Instance ID服务,在JSON正文中提供应用程序实例令牌:

https://iid.googleapis.com/iid/v1:batchAdd

https://iid.googleapis.com/iid/v1:batchRemove
     

参数

     
      
  • 授权:key = YOUR_API_KEY。在标题中设置此参数。
  •   
  • to:主题名称。
  •   
  • registration_tokens:您要添加或删除的应用实例的IID令牌数组。
  •   
     

结果

     

成功时,调用返回HTTP状态200.空结果表示成功订阅令牌。对于失败的订阅,结果包含以下错误代码之一:

     
      
  • NOT_FOUND - 已删除注册令牌或已卸载应用程序。
  •   
  • INVALID_ARGUMENT - 提供的注册令牌对发件人ID无效。
  •   
  • INTERNAL - 后端服务器由于未知原因而失败。重试请求。
  •   
  • TOO_MANY_TOPICS - 每个应用实例的主题数量过多。
  •   
     

POST请求示例

https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization:key=API_KEY
{
   "to": "/topics/movies",
   "registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}
     

示例结果

HTTP 200 OK
{
  "results":[
    {},
    {"error":"NOT_FOUND"},
    {},
  ]
}