管理FCM设备组

时间:2017-02-28 17:41:16

标签: 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创建一个组 已经存在然后我得到一个错误告诉我,但似乎 像非常 hacky方式来查找。

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

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

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

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

    解决方法:无。

  • 删除设备组。

    解决方法:无。

谢谢!

2 个答案:

答案 0 :(得分:10)

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

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

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

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

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

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

  

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

     

要在现有群组中添加或删除设备,请发送operation参数设置为addremove的POST请求,并提供注册令牌以进行添加或删除。< / p>      

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

     

HTTP POST请求

     

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

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["51"]
}
     

响应格式

     

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

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
     添加/删除注册令牌不需要

注意 notification_key_name ,但包含它可以防止您意外使用错误的 notification_key

  
      
  • 删除设备组。
  •   

从上述文档中的说明:

  

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

答案 1 :(得分:1)

要为第一个问题添加另一个选项,不确定FCM在接受的答案后是否添加了这个选项,但在Android(和IOS)文档的Managing device groups on the app server部分中,有一部分是关于使用GET请求

检索通知密钥

https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris

返回

{ "error": "notification_key not found" }

如果设备组不存在,或者是通知密钥,否则。