Firebase推送通知如何发送到设备

时间:2019-04-19 21:49:23

标签: android firebase push-notification firebase-cloud-messaging

我试图弄清Firebase如何连接到特定设备并向其发送消息。现在,我如何使用Firebase并从后端服务器向已注册的设备发送通知,但我不知道它在内部如何工作。 Firebase是否使用设备和服务器之间的持久连接切断服务器?它使用哪种技术?

目前,我对Android设备以及Firebase如何唤醒设备(即使有后台任务限制)最感兴趣。

2 个答案:

答案 0 :(得分:2)

FCM之所以能够唤醒设备,是因为该消息实际上是由Play服务附带的软件组件实际接收的,该服务以提升的特权运行。 Play服务可以选择唤醒设备并将消息传递到目标应用。

在正常情况下,Play服务中的FCM软件会保持持久的套接字连接对其后端开放。如果断开连接,它具有重新建立连接的逻辑,而不会给电池增加过多的负担。

答案 1 :(得分:1)

我试图解释GCM如何在my answer here中工作。我认为Firebase的内部工作原理相似。

安装安装了Firebase SDK的应用程序时,它会从Google服务器获取推送注册ID。通常,您还将推送注册ID也保存在服务器中。因此,在存在发送推送通知的情况时,您的服务器会使用此推送注册ID向Firebase服务器生成一个请求,以将推送通知发送到您的设备。

现在,让我们也考虑一下接收器部分(即您的设备)。我认为,在较新的Android版本中,JobScheduler会反复检查来自Firebase服务器的推送消息,如果存在,则设备会通知相应的应用程序,然后该应用程序会生成推送通知。

希望有帮助!