FCM注册ID令牌的最大长度是多少?

时间:2016-10-10 13:26:14

标签: firebase firebase-cloud-messaging

使用" new" Firebase Cloud Messaging,我想将客户端设备registration_id令牌可靠地保存到本地服务器数据库,以便服务器软件可以向他们发送推送通知。

我应该使用哪个最小的数据库字段大小来保存100%的客户注册令牌?

我发现有两个different libraries使用TextFieldVarChar(255)但没有明确定义最大长度。另外,我希望服务器代码在收到令牌时进行快速检查,以确保他们能够看到"对 - 什么是一个很好的最小长度和一组字符来检查?

4 个答案:

答案 0 :(得分:16)

我认为FCM的这一部分仍然与GCM相同。因此,您应该参考@TrevorJohns的这个answer

  

文档未指定任何模式,因此允许使用任何有效字符串。 格式可能会在未来发生变化;请不要对任何模式验证此输入,因为这可能会导致您的应用在发生这种情况时中断。

     

与“registration_id”字段一样,大小的上限是cookie的最大大小,即4K(4096字节)。

强调格式可能会在将来发生变化部分,我建议保持安全并超出通常的最大值(如上所述)长度。由于注册令牌的格式和长度也可能不同。

对于通常的长度和字符,您可以参考这些two answers ,后者更明确

  

我没有看到任何有关GCM registrationId格式的官方信息,但我已经分析了这些ID的数据库,可以得出以下结论:

     
      
  • 在大多数情况下,注册ID的长度等于 162 符号,但可以是 119 符号的变体,也可能是其他长度;
  •   
  • 它仅包含此字符:[0-9a-zA-Z\-\_]*
  •   
  • 每个regID包含一个或两个“分隔符”: - (减号)或_(下划线)
  •   

答案 1 :(得分:13)

我现在使用Firebase Cloud Messaging而不是GCM。

  

我获得的registration_id的长度是152。

每次开头我都有“:”,就像jamesc提到的那样(例如bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1)。

  

我将令牌设为varchar(255),这对我有效。

     

但是,registration_id的长度与大小无关   4k。您可以通过发送任何大小的数据   网络。通常,cookie限制为4096字节,由...组成   姓名,价值,有效期等。

答案 2 :(得分:0)

我认为注册ID的上限不是4K。可以放心地认为它比那要低得多。

通知有效载荷的上限为4KB(link),通知有效载荷包括令牌(link)。由于有效载荷还需要包含titlebody和其他数据,因此注册ID应该很小。

我从文档¯\ _(ツ)_ /¯

了解到

我最后得到的令牌长度为163个字符。我认为可以肯定地认为它们不会超过255个字符。

答案 3 :(得分:0)

这是一个真正的 fcm 令牌:

c2aK9KHmw8E:APA91bF7MY9bNnvGAXgbHN58lyDxc9KnuXNXwsqUs4uV4GyeF06HM1hMm-etu63S_4C-GnEtHAxJPJJC4H__VcIk90A5G50gsPvcIk90A50gswpjvcIk90A650gsqvpjnvgsqsqfwsqs4uVcIk90A62Fwsqs4uV4GyeF06HM1hMm-etu63s_4

如你所见,token的长度是:152