【问题标题】:How Firebase Push Notification is send to deviceFirebase 推送通知如何发送到设备
【发布时间】:2019-04-19 21:49:22
【问题描述】:

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

目前我最感兴趣的是 Android 设备,以及即使有后台任务限制,firebase 如何唤醒设备。

【问题讨论】:

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


    【解决方案1】:

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

    在正常情况下,Play 服务中的 FCM 软件会为其后端保持一个持久的套接字连接。如果它得到连接被丢弃,它有逻辑重新建立连接而不会过多地消耗电池。

    【讨论】:

    • 因此,FCM 具有更高的权限,因为 Google Play 服务和 Firebase 都归 Google 所有,但是像 Messenger/WhatsApp 这样的应用呢?消息由这些应用程序实时传递。
    • 来自 WhatsApp/Messenger 的所有消息都将收到 FCM 提供的推送通知。因此,如果设备可以访问 FCM,它可以在 firebase 服务器中获得等待设备中安装的所有应用程序的推送通知。
    • Messenger/WhatsApp 在后台使用 FCM?我理解正确吗?
    【解决方案2】:

    我试图解释 GCM 在my answer here 中的工作原理。 Firebase的内部工作原理在我看来是类似的。

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

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

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 2017-10-04
      • 2020-12-24
      • 2020-06-21
      • 1970-01-01
      • 2019-09-13
      • 2016-10-06
      相关资源
      最近更新 更多