Сообщение чата сохраняется в локальную базу, только когда приложение открыто
Сервер отправляет через FCM:
{
"message": {
"token": "...",
"notification": { "title": "Анна", "body": "Привет!" },
"data": { "chatId": "17", "messageId": "9031" }
}
}
В onMessageReceived на Android сообщение пишется в Room. Когда приложение на переднем плане — всё сохраняется. Когда в фоне — уведомление в шторке есть, а в базе пусто. Почему?
- С блоком notification в фоне колбэк не вызывается
- Room не может писать в базу из фонового потока
- Поле data доставляется только при открытом приложении
- В фоне FCM откладывает сообщения до запуска
