假设有人在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.原因是如果用户删除了我的应用程序的帐户,我还会删除他们的设备组,以便可以重用设备组名称.
