Этот вопрос первоначально относился к Google Cloud Messaging (GCM), но теперь он также относится к новому Firebase Cloud Messaging (FCM), который заменяет GCM.
Я хотел бы знать, как рассчитать размер полезной нагрузки GCM, когда он содержит словарь "уведомлений".
Я пробовал службу Google Cloud Messaging для Android. В некоторых частях документации говорится, что вы можете отправить до 4 КБ данных, а здесь говорится: "Уведомление может иметь максимальную полезную нагрузку 2 КБ".
Выполняя некоторые тесты, я мог отправлять сообщения с полезной нагрузкой "data", заполненной 4 КБ данных, и сервер принимал их без ошибок, как и ожидалось.
Однако, используя полезную нагрузку "уведомление", я обнаружил, что могу отправлять сообщения с объемом данных более 2 КБ, и сервер не возвращает ошибку. Я ожидал, что такие сообщения будут слишком большими.
Я обнаружил, что полезная нагрузка "уведомление" разделяет разрешенные 4 КБ с полезной нагрузкой "данные", но не так. В полезных данных "data" вы можете рассчитать размер, добавив размер ключей и значений. Полезная нагрузка "уведомление" занимает больше места, чем размер ключей и значений, которые она содержит.
Как я могу заранее рассчитать размер полезной нагрузки, если она содержит словарь уведомлений?