Я бы хотел создать в Android фоновую службу, которая будет прослушивать новый документ, созданный в Firestore.
Это правда, что вы можете сделать это в службе Android, но помните, чтоСервис представляет собой только способ, с помощью которого вы можете сказать ОС, что у вас есть некоторая фоновая работа, которая должна быть выполнена и которая на самом деле не требует прикрепленного представления (действия).
Согласно официальной документации относительно Службы Android , если вы хотите получить максимальную выгоду от работающей службы:
Служба переднего плана выполняет некоторую операцию, которая заметна для пользователя. Например, аудио приложение будет использовать сервис переднего плана для воспроизведения звуковой дорожки. Службы Foreground должны отображать Уведомление . Службы Foreground продолжают работать, даже когда пользователь не взаимодействует с приложением.
Итак, другими словами, вам нужно будет предоставить значок для уведомления, чтобы пользователь был проинформирован о том, что приложениепотребляет ресурсы.
Согласно вашему комментарию:
Нет, я хочу прослушать новые документы, созданные в Firestore.
Да, вы можете иметьслушатель, прикрепленный к какому-либо документу в вашей базе данных или даже к запросу, и он будет обновляться по мере изменения результатов. Но помните, что вам придется оплачивать операцию чтения за каждое полученное вами обновление, в основном это означает, что у пользователя также будут расходы на пропускную способность и стоимость их разряда батареи. Поэтому я всегда рекомендую удалить слушателей в соответствии с жизненным циклом действия .
Это способ, которым вы имеете дело с Firestore, когда хотите прослушать некоторые документы в фоновом режиме. но, пожалуйста, также рассмотрите возможность использования Облачных функций для Firebase :
Облачные функции для Firebase позволяют автоматически запускать внутренний код в ответ на события, инициируемые функциями Firebase и запросами HTTPS. Ваш код хранится в облаке Google и работает в управляемой среде. Нет необходимости управлять и масштабировать свои собственные серверы.
Редактировать:
Как на самом деле работают облачные функции?
Как и в случае с клиентом, Cloud Functions также позволяет вам присоединить слушателя к одному документу или даже к запросу. Таким образом, облачная функция может быть запущена, когда в вашей базе данных происходит что-то особенное, например, когда некоторые документы записываются в коллекцию Firestore. Как только функция сработает, вы можете предпринять некоторые действия. Как отметил Фрэнк ван Пуффелен в своем комментарии, вы можете отправить уведомление, например. Для Android см. Ниже простой пример:
Может быть, это не то, что вы хотите, чтобы отправитьуведомление, но это простой пример, и я думаю, что вы сможете понять идею.