Я пытался объяснить, как работает GCM в мой ответ здесь .Внутренний принцип работы Firebase похож на мой взгляд.
Когда вы устанавливаете приложение, в котором установлен Firebase SDK, оно получает идентификатор принудительной регистрации с сервера Google.Обычно вы также сохраняете идентификатор принудительной регистрации на своем сервере.Следовательно, когда возникает ситуация с отправкой push-уведомления, ваш сервер использует этот идентификатор push-регистрации для генерации запроса на сервер Firebase для отправки push-уведомления на ваше устройство.
Теперь давайте подумаем и о приемной части (т.е. о вашем устройстве).На мой взгляд, в более новых версиях Android позволяет JobScheduler
неоднократно проверять push-сообщения с сервера Firebase, и, если таковые имеются, устройство уведомляет соответствующее приложение, а затем приложение генерирует push-уведомление.
Надеюсь, это поможет!