【问题标题】:Firebase chat Push NotificationsFirebase 聊天推送通知
【发布时间】:2016-09-25 16:56:07
【问题描述】:

我正在开发一个使用 Firebase 作为后端的聊天应用。 要求在每个新消息接收者上收到一个推送通知,说明他收到了一条新消息。这是我第一次做这样的事情,所以我有一个问题:

由于我们不为此使用自己的服务器,我们是否需要第三方提供商(例如 Batch)来处理推送通知?如果我没记错的话,我认为 Firebase 不支持发送这样的推送通知,而只支持从控制台发送的推送通知。

任何帮助都会很棒。

【问题讨论】:

  • " 如果我​​没记错的话,我认为 Firebase 不支持发送这样的推送通知,而只支持从控制台发送的推送通知。" ...你是对的

标签: ios push-notification firebase firebase-cloud-messaging firebase-notifications


【解决方案1】:

(iOS) 有点晚了;但也许可以在未来帮助任何人。

我最近遇到了这个问题,我的解决方案是利用设备组方法。

尔格:

  1. 将使用registration_ids(或用于推送的设备ID数组)创建一个设备组

  2. 然后将推送发送到所述设备组

  3. 删除设备组

见:https://firebase.google.com/docs/cloud-messaging/ios/device-group

【讨论】:

    【解决方案2】:

    希望有人觉得这很有用,对我有帮助。

    目前,Firebase 提供的解决方案无法在设备之间发送推送通知。如果你想要那种类型的东西,你应该试试OneSignal,它是免费的,而且很容易实现。

    【讨论】:

    • 这应该是设备到设备推送消息的公认答案,就像您在消息传递应用程序中需要的那样。
    • 这正是我所需要的。找了好几天。谢谢。
    • 怎么可能请解释一下。我在 OneSignal 上找不到任何东西。
    • 我也没有找到任何有关设备到设备以使用 firebase 实时数据库推送的相关文档。请让我们知道对此类的参考。提前致谢。
    • @RajanMaharjan 它与 Firebase 无关。当您在 firebase 中执行操作(保存、更新)并希望将有关它的通知发送给另一个用户时,您必须添加一些 OneSignal 代码来处理通知。请查看 OneSignal 文档。 documentation.onesignal.com/docs/…
    【解决方案3】:

    您可以使用 Http POST 请求从 Android 发送推送通知,我正在使用改造来做到这一点,例如:

    网址:https://fcm.googleapis.com/fcm/send

    Http 标头:

    Content-Type: application/json
    Authorization: key=Your_FCM_Key
    

    正文(Json):

    {
     "to" : "user_device_id"
      "data" : {
        "message": "test message",
        "color": "black"
      },
      "notification" : {
         "title": "Testing FCM",
         "body":"My first notification",
         "tag":"chat_msg",
         "color" : "#FF4081",
         "icon" : "ic_stat_onesignal_default", 
       }
    }
    

    您可以使用 Advanced Rest Client“Google Chrome 扩展”进行测试

    【讨论】:

    • FCM_KEY 不是秘密。切勿将其直接嵌入到您的应用中。
    【解决方案4】:

    新版 Firebase 中有两个功能可以向用户发送通知:

    • Firebase 云消息传递 - 下一代 Google 云消息传递
    • Firebase 通知 - 基于 Cloud Messaging 构建,可让您通过 Firebase 控制台轻松向用户发送通知

    要使用云消息发送消息,您需要在请求中指定授权密钥。由于知道此密钥允许代表您发送消息,因此您需要将对其的访问限制为受信任的进程。这确实可以是服务器,但任何受信任的进程都可以。

    【讨论】:

    • 所以这意味着没有服务器(我们没有)我们必须使用像 Batch 这样的第三方服务?
    • @ZassX:请问是否以及如何解决了这个问题?提前致谢。
    • @MJQZ1347 刚刚发布了对我有用的解决方案,请查看我的回答。
    • 谢谢,会调查的!
    • 您将监听一些端点(您草拟的东西或例如 Firebase 数据库)并调用 HTTP 端点来发送每条消息。我肯定会从一些小事开始,除非您期望立即获得大量消息。
    猜你喜欢
    • 2018-01-20
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2018-10-10
    相关资源
    最近更新 更多