И как лучше хранить.
1. Создать очередь, куда при вызове Timber бы добавлялись бы логи. При превышении определенного значения очереди, отправляется на сервер пачка логов, и если ответ успешный пришел, то эти логи удаляются из очереди.
А при вызове onDestroy у приложения отправлять оставшиеся в очереди.
Вопроc, а если приложение убито, и работает Foreground Service (как и FirebaseMessagingService, приложение же не запущено. значит я не смогу сохранять логи.
2. Сохранять в Database (Например в Room) и при превышении определенного количества отправлять и очищать.
Я же из убитого приложения могу из Service иметь доступ к Dao, верно? Значит и запрос могу отправить, если что.
А при вызове onDestroy у приложения также отправить последнюю пачку. (либо отправить при следующем запуске, но это не желательно, так как пользователь может и не запустить приложение.
Минус - невозможность логирования перед инициализации бд (но я думаю это не страшно).
3. Управлять отправкой через Пуши. (Пришло сообщение в FirebasMessaging, мы отправили все из Database