Подтвердить что ты не робот

Какова максимальная длина токена регистрации ID FCM?

Работая с "новыми" облачными сообщениями Firebase, я хотел бы надежно сохранить токены клиентского устройства registration_id в базу данных локального сервера, чтобы серверное программное обеспечение могло отправлять им push-уведомления.

Каков минимальный размер поля базы данных, который я должен использовать для сохранения 100% токенов регистрации клиента?

Я нашел две различные библиотеки, которые используют TextField и VarChar(255), но ничто категорически не определяет максимальная длина. Кроме того, я хотел бы, чтобы код сервера выполнял быструю проверку длины при получении токенов, чтобы убедиться, что они "выглядят" правильно - какая была бы минимальная длина и набор символов для проверки?

4b9b3361

Ответ 1

Я думаю, что эта часть FCM по-прежнему совпадает с GCM. Поэтому вам следует обратиться к этому ответу от @TrevorJohns:

Документация не указывает какой-либо шаблон, поэтому допустимая строка разрешена. Формат может измениться в будущем; пожалуйста, не проверяйте этот ввод в отношении какого-либо шаблона, так как это может привести к поломке вашего приложения, если это произойдет.

Как и в поле "registration_id", верхняя граница по размеру является максимальным размером для файла cookie, который составляет 4K (4096 байт).

Подчеркивание в формате может измениться в будущей части, я предлагаю оставаться в безопасности и превышать максимальную (указанную выше) длину. Так как формат и длина токена регистрации могут также меняться.

Для обычной длины и символов вы можете ссылаться на эти два ответы, причем последнее намного больше окончательное:

Я не видел официальной информации о формате регистрации GCM, но я проанализировал нашу базу данных таких идентификаторов и могу сделать следующие выводы:

  • в большинстве случаев длина идентификатора регистрации равна 162, но может быть изменена символами 119, может быть, и другими длинами;
  • он состоит только из этих символов: [0-9a-zA-Z\-\_]*
  • каждый regID содержит один или оба "разделителя": - (минус) или _ (подчеркивание)

Ответ 2

Теперь я использую Firebase Cloud Messaging вместо GCM.

Длина регистрационной информации у меня равна 152.

У меня также есть ":" в самом начале каждый раз, как упоминалось в jamesc (например, bk3RNwTe3H0: CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1).

Я делаю маркер как varchar (255), который работает для меня.

Однако длина registration_id не имеет отношения к размеру из 4k. Вы можете отправлять любой размер данных через сеть. Обычно файлы cookie ограничены 4096 байтами, которые состоят из имя, значение, срок годности и т.д.