首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旧的或新的注册id都不是标准的。

旧的或新的注册id都不是标准的。
EN

Stack Overflow用户
提问于 2015-08-26 13:10:28
回答 2查看 136关注 0票数 1

我在数据库中有两个注册I,一个来自使用gcm.register()的旧版本,另一个使用instanceID.getToken

我向同一设备的两个注册ids发送了一个鬼通知。这就是我得到的。旧注册id (在使用gcm.register生成应用程序更新之前)

代码语言:javascript
复制
{
"multicast_id": 0000000,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
    {
    "message_id": "0:1f9fd7ecd"
    }]
}

新注册id (在应用程序更新后,使用instanceID.getToken生成):

代码语言:javascript
复制
{
"multicast_id": 0000000,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
    {
    "message_id": "0:8ccf9fd7ecd"
    }]
}

如何删除或更新旧的注册ID?请帮帮忙!现在,我不能因为这个而发送通知。因为它会发送双重/重复的通知。

谷歌( EDIT(2015-09-19): )已经承认了这个问题,并正在努力解决这个问题。https://github.com/google/gcm/issues/94

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-02 14:28:38

这是gcm中的一个bug,现在已经修复了。

现在,如果我向旧的gcm id发送通知,它会将新的注册id返回为canoncial。

来源:https://github.com/google/gcm/issues/94

票数 0
EN

Stack Overflow用户

发布于 2015-08-26 13:38:24

你没有收到任何标准的身份证..。相反,您只收到了一个唯一的message_id。

如果您试图使用旧的注册令牌发送消息,GCM将像往常一样处理请求,但它将在响应的registration_id字段中包含规范ID。确保用此规范ID替换存储在服务器中的注册令牌,因为旧的注册令牌最终将停止工作。

来自:https://developers.google.com/cloud-messaging/registration#canonical-ids

canonical_ids字段指示结果中规范ids的数量。结果数组包含对象,这些对象指示每个registration_id的消息id是什么,如果出现错误,则使用可选的规范id、

只有在相应的结果中包含registration_id字段(这是规范id)时,您才需要更新注册id。结果与请求中的registration_ids顺序相同。这就是如何将结果映射到请求的注册id。

例如,查看这个文档示例:

代码语言:javascript
复制
{ "multicast_id": 216,
  "success": 3,
  "failure": 3,
  "canonical_ids": 1,
  "results": [
    { "message_id": "1:0408" },
    { "error": "Unavailable" },
    { "error": "InvalidRegistration" },
    { "message_id": "1:1516" },
    { "message_id": "1:2342", "registration_id": "32" },
    { "error": "NotRegistered"}
  ]
}

来自:https://developers.google.com/cloud-messaging/http#example-responses

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32227586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档