【问题标题】:App to app push notifications with Firebase in Swift在 Swift 中使用 Firebase 的应用程序到应用程序推送通知
【发布时间】:2016-07-24 17:56:10
【问题描述】:

我有一个具有管理员登录名的应用程序。我正在尝试添加管理员从应用程序本身发送推送通知而无需转到我的 Firebase 控制台的功能。当我询问 Firebase 支持时,我收到了此回复。

“可以通过 Firebase 云消息传递。您可以做的是从您的应用向应用服务器发送上游消息,然后它会处理上游消息以向客户端应用发送推送通知。”

以前有人做过吗?我试图弄清楚这将如何工作。由于非管理员只是在没有登录的情况下使用该应用程序,我是否会创建一个默认用户 ID,该应用程序本身会监听上游消息,这意味着推送通知将被发送到?有没有办法将上游消息作为推送通知发送给手机上使用该应用程序的任何人?

【问题讨论】:

    标签: swift firebase firebase-cloud-messaging firebase-notifications


    【解决方案1】:

    您可以使用 Firebase 控制台 GUI 向您的客户端应用发送推送通知: https://firebase.google.com/docs/notifications/

    但是,如果您希望直接从您的客户端应用(移动或网络)发送推送通知,您必须实现自己的应用服务器,该服务器将与 FCM(Firebase 云消息传递)服务器一起向其他客户端发送通知。

    Firebase 文档中对此进行了解释: https://firebase.google.com/docs/cloud-messaging/server

    还有关于此的 Firebase 博客文章: https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html

    【讨论】:

    • 使用 Google Cloud Functions,您需要自己的应用服务器。请参阅下面的答案。
    • 更新:正如@Crashalot 所指出的,在Firebase 引入Cloud Functions 之后,无需实现单独的App 服务器,您可以编写云函数来处理从设备到设备发送推送通知。
    • 忘记链接到解释如何在没有自己的应用服务器的情况下进行推送通知的答案:stackoverflow.com/a/47106374/144088
    【解决方案2】:

    听起来您想让您的管理员从应用的管理员版本中发起 FCM 消息。在这种情况下,Firebase 支持是正确的,有几种方法可以实现这种类型的东西。

    基本逻辑是:

    1. 管理员告诉服务器发送请求。
    2. 服务器代表管理员发送请求。

    您有几个选项来实施第 1 步,第 2 步将始终相同。对于第 1 步,您可以:

    • 在您的服务器上创建一个仅接受来自您的管理员用户的请求的端点。管理员用户向该端点发送 HTTP 请求,其中包含服务器所需的所有信息,然后将 FCM 消息发送给所有相关用户。
    • 通过与 FCM 的 XMPP 连接使用从客户端到服务器的上游消息传递。管理员用户将使用 FCM 客户端 SDK 向 FCM 发送一条“上游”消息,该消息将转发到您的服务器,此时您的服务器将向所有相关用户发送一条 FCM 消息。

    假设我了解您的要求,我认为第一个选项更简单,并且效果也很好。

    【讨论】:

      猜你喜欢
      • 2020-01-31
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多