Звучит так, как будто вы не отправляете свои сообщения, настроенные на «сворачиваемость».По умолчанию каждое сообщение будет отличаться, не переписывая последнее сообщение.FCM документирует это хорошо:
https://firebase.google.com/docs/cloud-messaging/concept-options
Не складывающиеся и складные сообщения
Не складываемое сообщение обозначает, что каждый отдельныйсообщение доставлено на устройство.Невосстановимое сообщение доставляет некоторый полезный контент, в отличие от разборного сообщения, такого как «пинг» без содержимого для мобильного приложения, чтобы связаться с сервером для получения данных.
...
Складное сообщение - это сообщение, которое может быть заменено новым сообщением, если оно еще не доставлено на устройство.
...
Или, если вы не используете FCM, вот ссылка на документы Apple APN напрямую.
Чтобы разрешить объединение аналогичных уведомлений, выможет включать идентификатор свертывания в запросе на уведомление.Обычно, когда устройство подключено к сети, каждый запрос уведомления, отправляемый в APN, приводит к доставке уведомления на устройство.Однако, когда ключ apns-collapse-id присутствует в заголовке вашего запроса HTTP / 2, APN объединяет запросы, значения которых для этого ключа совпадают.Например, служба новостей, которая отправляет один и тот же заголовок дважды, может использовать одно и то же значение идентификатора свертывания для обоих запросов.APN затем объединили бы два запроса в одно уведомление для доставки на устройство.Подробнее о ключе apns-collapse-id
Обновление с некоторыми деталями кода:
public void sendMessage(String title, String body, Map<String, String> data, boolean shouldCollapse) {
PlatformConfiguration platformConfig = new PlatformConfiguration(30);
if (shouldCollapse)
messageBuilder.setAndroidConfig(platformConfig.getCollapsibleAndroidConfig("test")).setApnsConfig(platformConfig.getCollapsibleApnsConfig("test"));
...
public ApnsConfig getCollapsibleApnsConfig(String collapseKey) {
return getCoreApnsConfig().putHeader("apns-collapse-id", collapseKey)
.setAps(getNonCollapsibleApsBuilder().setCategory(collapseKey).setThreadId(collapseKey).build()).build();
}
public AndroidConfig getCollapsibleAndroidConfig(String collapseKey) {
return getCoreAndroidConfig().setCollapseKey(collapseKey)
.setNotification(
getNonCollapsibleAndroidNotificationBuilder().setTag(collapseKey).build()).build();
}