Просмотр вашего запроса JSON:
{
"to" : "XXXDecviceToken",
"data" : {
"callId" : "Call ID",
"displayName" : "Abhilash",
"room" : "2000"
},
"time_to_live" : 0
}
Существуют две проблемы, которые могут помешать доставке вашего уведомления при низком заряде батареи:
- Вы не указываете приоритет, поэтому для сообщений данных приоритет по умолчанию - "нормальный":
По умолчанию , уведомления отправляются с высоким приоритетом, а сообщения данных отправляются с нормальный приоритет . Обычный приоритет оптимизирует потребление батареи клиентским приложением и должен использоваться, если не требуется немедленная доставка. Для сообщений с обычным приоритетом приложение может получить сообщение с неопределенной задержкой .
- Вы указываете "time_to_live", равное 0, что означает, что если FCM не сможет доставить сообщение немедленно, оно никогда не будет доставлено (поскольку оно не хранится в хранилище FCM).
Таким образом, объединение «обычного» приоритета с «time_to_live», равным 0, может предотвратить доставку сообщения при низком заряде батареи.
Чтобы попытаться преодолеть эту проблему, вы можете установить приоритет «высокий»:
{
"to" : "XXXDecviceToken",
"data" : {
"callId" : "Call ID",
"displayName" : "Abhilash",
"room" : "2000"
},
"time_to_live" : 0,
"priority" : "high"
}
или измените «time_to_live» на положительное значение (по крайней мере, достаточно времени, чтобы дать сообщение возможность доставки после перезарядки батареи).