Звучит так, как будто вы не отправляете свои сообщения, настроенные на «сворачиваемость».По умолчанию каждое сообщение будет отличаться, не переписывая последнее сообщение.FCM документирует это хорошо:
https://firebase.google.com/docs/cloud-messaging/concept-options
Не складывающиеся и складные сообщения
Не складываемое сообщение обозначает, что каждый отдельныйсообщение доставлено на устройство.Невосстановимое сообщение доставляет некоторый полезный контент, в отличие от разборного сообщения, такого как «пинг» без содержимого для мобильного приложения, чтобы связаться с сервером для получения данных.
...
Складное сообщение - это сообщение, которое может быть заменено новым сообщением, если оно еще не доставлено на устройство.
...
![enter image description here](https://i.stack.imgur.com/Qi70J.png)
Или, если вы не используете 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();
}