Избегайте прослушивания Firebase в приложении - я должен использовать два FirebaseMessengerServices?
У меня запущена служба переднего плана для моего приложения для Android, даже когда приложение убито. Я кодировал большую часть своего приложения на React Native, но поскольку службы переднего плана недоступны в реагировать на нативном, я кодировал службу переднего плана в Android и построил мост для реагирования на нативный, который работает хорошо.
Служба переднего плана состоит из исполняемого файла, который периодически выполняет некоторый код React Native:
Runnable (every 60 seconds) ---> (ReactBridge Emitter) ---> ReactNativeCode execution
Моя проблема в том, что я не хочу запускать прослушиватель Firebase 24x7.
Всякий раз, когда происходит обновление базы данных, я получаю уведомления через облачные функции.
Всякий раз, когда приходит уведомление, я хочу прочитать это уведомление с помощью службы, а затем обновить локальный массив на основе данных. Если я использую прослушиватель 24x7, это увеличивает стоимость загружаемых данных и энергопотребление мобильной связи.
У меня уже есть FirebaseMessagingService, работающий в ReactionNative. Но это работает не так, как ожидалось, то есть, когда я отправляю уведомление о полезной нагрузке данных, я не могу получить его, когда приложение находится в фоновом режиме (что не должно происходить на основе этой ссылки, https://firebase.google.com/docs/cloud-messaging/android/receive).
Так можно ли мне создать еще один FirebaseMessagingService в Android, чтобы преодолеть проблему?
Будут ли какие-либо проблемы с существующими уведомлениями, которые обрабатываются аналогом FirebaseMessagingService на React Native? Кто-то сказал мне, что два FirebaseMessagingServices (или два сервиса, которые читают и обрабатывают уведомления) могут привести к сбою приложения.
Кроме того, как мне не допустить, чтобы слушатель (дочерний слушатель и слушатель снимка документа) работал круглосуточно, а вместо этого слушал уведомления и обновлял локальные переменные, содержащиеся в службе переднего плана приложения? Я хочу немного потока, как это:
DB change --> Push Notification --> ForegroundService --> Local Variables updated --> Runnable restarted
Я знаю, что это больше вопрос проектирования системы.