Firebase 聊天推送通知

Firebase chat Push Notifications

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

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

任何帮助都会很棒。

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

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

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

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

Url: https://fcm.googleapis.com/fcm/send

HTTP Headers:

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

Body(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 进行测试 "Extension of Google Chrome"

希望有人觉得这有用,它对我的​​情况有所帮助。

目前无法使用 Firebase 提供的解决方案从设备向设备发送推送通知。如果您想要那种类型的东西,您应该尝试 OneSignal,它是免费的并且很容易实现。

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

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

因此:

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

  2. 创建一个设备组
  3. 然后将推送发送到所述设备组

  4. 删除设备组

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