有没有办法根据注册ID或通知密钥名称检索现有的notification_key?

Mon*_*key 4 firebase firebase-cloud-messaging

假设有人在Fi​​rebase Cloud Messaging中创建了一个设备组,是否有办法在notification_key设备组创建后检索现有设备组?

有没有办法notification_key根据通知密钥名称或注册ID 查找?

似乎通知密钥仅在create方法上返回,如果密钥丢失或者保存到数据库时出错 - 则不可能在没有a的情况下向密钥名称添加另一个注册ID,notification_key因为它已经存在.

cam*_*kid 7

如果您知道创建它时使用的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-n??ame
Run Code Online (Sandbox Code Playgroud)

参考: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);
    }
});
Run Code Online (Sandbox Code Playgroud)

我在使用此调用时发现的一件事是返回的notification_key总是不同,但我能够成功使用它来添加或删除registration_ids.

我将从之前的评论中添加一些额外的信息:

  1. 我在设备组方面遇到了很多麻烦.删除设备组的唯一方法是删除它包含的所有通知密钥.如果您忘记了已添加到设备组的通知密钥,则无法删除该设备组,因为目前无法获取设备组中的通知密钥列表.
  2. 设备组是一种非常好的机制,用于向多个设备发送消息(有关其他方法,请参阅@ AL.的注释).我还在数据库中存储每个设备组的registration_ids.原因是如果用户删除了我的应用程序的帐户,我还会删除他们的设备组,以便可以重用设备组名称.