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



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

请帮帮我。

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

如果要控制接收(和不接收)消息的设备,则必须将消息发送到这些特定设备。为此,您可以跟踪数据库中这些设备的实例 ID 令牌,然后在发送下游消息时以令牌列表为目标。

有关如何管理设备令牌和发送消息的示例,请参阅适用于 Firebase 的云消息文档。

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

管理多个应用实例的关系映射

使用实例 ID 服务的批处理方法,您可以对应用实例进行批量管理。例如,您可以向 FCM 或 GCM 主题批量添加或移除应用实例。若要管理应用实例,请在此终结点调用实例 ID 服务,并在 JSON 正文中提供应用实例令牌:

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

参数

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

结果

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

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

示例开机自检请求

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"},
{},
]
}

相关内容

  • 没有找到相关文章

最新更新