管理FCM设备组

Jos*_*yol 12 firebase firebase-cloud-messaging

我正试图弄清楚如何使用REST API从应用服务器管理FCM设备组.

AFAIK这些是更新后的文档:https://firebase.google.com/docs/cloud-messaging/android/device-group#managing_device_groups

这是我已经可以做的事情:

  • 使用一些设备令牌创建新设备组
  • 将设备令牌添加到现有设备组

这就是我无法弄清楚如何做的事情,因为在文档中没有提到它:

  • 根据设备组查询设备组是否已存在notification_key_name.

    解决方法1:如果我尝试创建一个notification_key_name 已经存在的组,那么我会收到一个错误告诉我,但这似乎是一个非常黑客的方法来查找.

    解决方法2:将自己的信息存储在其他地方.

  • 找出哪个设备令牌(registration_id)属于设备组.

    解决方法:和以前一样,将自己的信息存储在其他地方.

  • registration_id从设备组中删除设备令牌().

    解决方法:无.

  • 删除设备组.

    解决方法:无.

谢谢!

AL.*_*AL. 11

  • 根据设备组查询设备组是否已存在notification_key_name.

你的第二个解决方法是要走的路.您应该将其存储在App服务器中,与存储注册令牌的位置相同.


  • 找出哪个设备令牌(registration_id)属于设备组.

与上面的解决方法相同.您必须在App Server上管理这些详细信息.开发人员有责任管理这些细节.如果删除了注册设备,则匹配操作,您也必须将其从App Server中删除.


  • registration_id从设备组中删除设备令牌().

我不确定你需要什么.该文档包含有关从设备组中删除注册令牌的详细信息:

在设备组中添加和删除设备

要在现有组中添加或删除设备,请发送operation参数设置为add或的POST请求remove,并提供注册令牌以进行添加或删除.

注意:如果从设备组中删除所有现有注册令牌,FCM将删除设备组.

HTTP POST请求

例如,要将具有注册ID 51的设备添加到appUser-Chris,您将发送此请求:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["51"]
}
Run Code Online (Sandbox Code Playgroud)

响应格式

成功添加或删除设备的请求会返回如下所示的notification_key:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
Run Code Online (Sandbox Code Playgroud)

注意:添加/删除注册令牌不需要notification_key_name,但包含它会防止您意外使用不正确的notification_key.


  • 删除设备组.

从上面文档中的注释:

注意:如果从设备组中删除所有现有注册令牌,FCM将删除设备组.