¿Cuál es la longitud máxima de un token de identificación de registro de FCM?

Al trabajar con el “nuevo” Firebase Cloud Messaging, me gustaría guardar de manera confiable registration_id tokens register_id del dispositivo del cliente en la base de datos del servidor local para que el software del servidor pueda enviarles notificaciones automáticas.

¿Cuál es el tamaño de campo de base de datos más pequeño que debo usar para guardar el 100% de los tokens de registro de clientes generados?

He encontrado dos bibliotecas diferentes que usan TextField y VarChar(255) pero nada que defina categóricamente la longitud máxima. Además, me gustaría que el código del servidor haga una verificación de longitud rápida al recibir los tokens para asegurar que se “vean” bien, ¿cuál sería una buena longitud mínima y un conjunto de caracteres para verificar?

Creo que esta parte de FCM sigue siendo la misma que GCM. Por lo tanto, debe referirse a esta respuesta por @TrevorJohns:

La documentación no especifica ningún patrón, por lo tanto, se permite cualquier cadena válida. El formato puede cambiar en el futuro ; por favor, no valide esta entrada con ningún patrón, ya que esto puede hacer que su aplicación se rompa si esto sucede.

Al igual que con el campo “registration_id”, el límite superior en el tamaño es el tamaño máximo para una cookie, que es 4K (4096 bytes).

Enfatizando en El formato puede cambiar en la parte futura , yo sugeriría mantenerme a salvo y tener una longitud más allá del máximo habitual (mencionado anteriormente). Dado que el formato y la longitud de un token de registro también pueden variar.

Para la duración y los caracteres habituales, puede referirse a estas dos respuestas, siendo esta última mucho más definitiva :

No he visto ninguna información oficial sobre el formato de GCM registrationId, pero he analizado nuestra base de datos de dichos ID y puedo sacar las siguientes conclusiones:

  • en la mayoría de los casos, la longitud de un ID de registro equivale a 162 símbolos, pero pueden ser variaciones de 119 símbolos, tal vez otras longitudes también;
  • consiste solo de este carácter: [0-9a-zA-Z\-\_]*
  • cada regID contiene uno o ambos “delimitadores”: – (menos) o _ (subrayado)

Ahora estoy usando Firebase Cloud Messaging en lugar de GCM.

La longitud del registration_id que tengo es 152.

También tengo “:” al principio cada vez como lo que jamesc mencionó (por ejemplo, bk3RNwTe3H0: CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1).

Hago el token como varchar (255) que funciona para mí.

Sin embargo, la longitud de registration_id no tiene relación con el tamaño de 4k. Puede enviar cualquier tamaño de datos a través de la red. Por lo general, las cookies están limitadas a 4096 bytes, que consisten en nombre, valor, fecha de caducidad, etc.