假设有人在Firebase Cloud Messaging中创建了一个设备组,是否有办法在设备组创建后检索现有的notification_key? 有没有办法根据通知密钥名称或注册ID查找notification_key? 似乎通知密钥仅在
有没有办法根据通知密钥名称或注册ID查找notification_key?
似乎通知密钥仅在create方法上返回,如果密钥丢失或保存到数据库时出错 – 如果没有notification_key,则无法在密钥名称中添加另一个注册ID,因为它已经存在.
如果您知道创建它时使用的notification_key_name,则可以检索设备组的notification_key.参考: https://firebase.google.com/docs/cloud-messaging/android/device-group用这个:
https://android.googleapis.com/gcm/notification?notification_key_name=your-key-name
参考:https://groups.google.com/forum/#!topic/firebase-talk/ytovugx8XNs
例如:
let options = { url: 'https://android.googleapis.com/gcm/notification?notification_key_name=the_name', method: 'GET', headers: { "Content-Type": "application/json", "Authorization": "key=" + authorizationKey, "project_id": projectId } }; request(options, function (error, response, body) { if (!error) { res.json(body); } else { res.json(error); } });
我在使用此调用时发现的一件事是返回的notification_key总是不同,但我能够成功地使用它来添加或删除registration_ids.
我将从之前的评论中添加一些额外的信息:
>我在设备组方面遇到了很多麻烦.删除设备组的唯一方法是删除它包含的所有通知密钥.如果您忘记了已添加到设备组的通知密钥,则无法删除该设备组,因为目前无法获取设备组中的通知密钥列表.>设备组是一种非常好的机制,用于向多个设备发送消息(有关其他方法,请参阅@ AL.的注释).我还在数据库中存储每个设备组的registration_ids.原因是如果用户删除了我的应用程序的帐户,我还会删除他们的设备组,以便可以重用设备组名称.