Quelle est la longueur maximale d'un jeton D'ID D'enregistrement FCM?

en travaillant avec la" nouvelle " messagerie Cloud Firebase, je voudrais enregistrer de manière fiable l'appareil client registration_id jetons pour le serveur local de la base de données ainsi que le logiciel serveur peut envoyer des notifications push.

Quelle est la plus petite taille de champ de base de données que je devrais utiliser pour sauver 100% des jetons d'enregistrement de client générés?

j'en ai trouvé deux bibliothèques utiliser TextField et VarChar(255) mais rien n' définition catégorique de la longueur maximale. En outre, je voudrais que le code du serveur fasse une vérification rapide de la longueur lors de la réception des tokens pour s'assurer qu'ils "regardent" à droite - quelle serait une bonne longueur minimale et un ensemble de caractères à vérifier?

17
demandé sur jamesc 2016-10-10 16:26:13

2 réponses

je pense que cette partie de FCM est toujours la même que GCM. Par conséquent, vous devriez faire référence à ceci réponse par @TrevorJohns:

la documentation ne spécifie aucun motif, donc toute chaîne valide est autorisée. Le format peut changer dans le futur; merci de ne pas valider cette entrée pattern, car cela peut provoquer une panne de votre application si cela se produit.

comme pour le champ" registration_id", le la limite supérieure de la taille est la taille maximale d'un cookie, qui est de 4k (4096 octets).

en insistant sur le Le format peut changer dans le futur partie, je suggérerais de rester en sécurité et d'avoir une longueur au-delà de la max habituelle (mentionnée ci-dessus). Depuis le format et la longueur d'un enregistrement jeton peut également varier.

Pour la longueur habituelle et de caractères, vous pouvez vous référer à ces deuxréponsesle dernier étant beaucoup plus définitive:

Je n'ai pas vu d'informations officielles sur le format de GCM registrationId, mais j'ai analysé notre base de données de tels ID et je peux faire les conclusions suivantes:

  • dans la plupart des cas, la longueur d'un registrationID égal à 162 symboles, mais peut être des variations vers 119 symboles, peut-être d'autres longueurs de trop;
  • se compose uniquement de ces caractères: [0-9a-zA-Z\-\_]*
  • chaque regID contient un ou les deux "délimiteurs": - (moins) ou _ (soulignement)
12
répondu AL. 2017-05-23 11:46:31

j'utilise maintenant Firebase Cloud Messaging au lieu de GCM.

la longueur de La registration_id j'ai est 152.

j'ai aussi": "au tout début à chaque fois comme ce que jamesc a mentionné (par exemple bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1).

je fais le jeton comme varchar (255) qui travaille pour moi.

cependant, la longueur de registration_id n'a aucun rapport avec la taille de 4k. Vous êtes autorisé à envoyer n'importe quelle taille des données à travers réseau. Généralement, les cookies sont limités à 4096 octets, qui se composent de nom, valeur, date d'expiration, etc.

8
répondu Fred 2016-11-13 08:57:46