安卓GCM注册ID的最大长度

51
在Google Cloud Messaging中,注册ID的最大长度是多少?

1
可能,256字节是一个安全的存储值。 - swiftBoy
4个回答

54

5
这里是为什么要使用4K的解释:registration_id的最大大小受到cookie的最大大小的限制,而cookie的最大大小为4K(4096字节)。实际上,tokens的大小通常要小得多,但您不应该依赖这种行为。参考来源:https://groups.google.com/forum/#!topic/android-c2dm/AUGlvmJPyMM - Henry Aloni
4
但是在评论中,另一个人说:"使用varchar时255是完美的。4k是针对有效负载而不是Reg Id。",你对此有何看法? - Rakib
从同一Google群组帖子中阅读,似乎这是一个错误,4k是消息负载的限制,而不是注册ID的限制。 - naXa stands with Ukraine

11

我觉得我可以帮你解决这个问题...我这周正在使用GCM,我的设备注册ID看起来像这样:

APA91bHPRgkF3JUikC4ENAHEeMrd41Zxv3hVZjC9KtT8OvPVGJ-hQMRKRrZuJAEcl7B338qju59zJMjw2DELjzEvxwYv7hH5Ynpc1ODQ0aT4U4OFEeco8ohsN5PjL1iC2dNtk2BAokeMCg2ZXKqpc8FXKmhX94kIxQ

共163个字符!

希望这能帮助到你...


1
谢谢,我决定暂时选择一个varchar(250)(希望Google不会随着时间的推移增加regID超过250个字符) - Dahevos
25
这个回答很危险。刚刚看到一个注册 ID 编号为 205 的请求,它超出了数据库的字段大小(200),导致我们的数据库崩溃。我们将把字段大小增加到 4096。 - Andrew Westberg - BCSH
2
我的测试表明,您的包名称长度会影响令牌大小。如果您遇到一些令牌比您在数据库中拥有的空间更长,那么更改为较短的包名称可能会在某些情况下缓解此问题。 - Andrew Westberg - BCSH
1
没错!设备ID没有官方限制。我认为一个合理的数字可能是512。虽然到目前为止我遇到的最大长度是205,但谁知道它会增加呢。 - Gaston Sanchez
在我的新注册中,我获得了GCM注册ID,就像这样0vfNE9qzu8:APA91bEzTKfWMbhyjF736xarAF3i5A2-o2jTHvBqRO3Z6OCdpt5qLvIIi_VymvFVcUIMchDNUiknexOKGKkEI-zoRTvbXAh3atMPYoh2ROmk3fifrnpH-GWP-a5PYr861Qf6u5jY9uTP。 - blackjack
显示剩余3条评论

4
在iOS上,我所有的注册令牌都是这样的:
lhBV25_Znsk:APA91bHFM9nbX-s0py6-ktzgdpP_y85RahdL3OJ4LG4v-jT_9QY8ZbZH8uK-JNO_BDy75b6RfDT-v-j5W0FXIFTif72ckT3kqLNBDNWYSd5AhxYwdJi3Wqfdqqi-wL8F_k1nm2qUS3Ra

请注意11个字符后的冒号。同时请注意,它在冒号之后包含了序列“APA...”,但您应该使用整个注册令牌。

我有同样的问题,而且我也在想同样的事情...有人解决了吗? - user2387149
GCM 没有起作用的原因是我上传了错误的 .p12 文件到 Google 服务器。请确保您生成正确的文件。 - Lukasz Czerwinski
你在iOS上使用GCM吗? - alicanbatur
APA是一个Android令牌,不是iOS。 - greatvovan

2

在我撰写本文时,GCM ID没有官方限制,payload size为4k。然而,根据这篇文章和我之前的讨论,GCM ID应该安全地假定为255。

如果你询问的是数据库相关问题,我建议你使用TEXT。


1
在SQL Server中最好使用VARCHAR(MAX),因为使用TEXT会很麻烦。 - Magnus Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接