我正在使用Firebase作为后端开发聊天应用程序。
每当有新消息时,需要向接收者发送推送通知,告知其收到了新消息。这是我第一次做这样的事情,因此我有一个问题:
由于我们没有自己的服务器来处理此问题,我们是否需要第三方提供商(例如Batch)来处理推送通知?如果我没有错,我认为Firebase不支持像这样发送推送通知,而只能从控制台发送。
任何帮助都将是非常好的。
我正在使用Firebase作为后端开发聊天应用程序。
每当有新消息时,需要向接收者发送推送通知,告知其收到了新消息。这是我第一次做这样的事情,因此我有一个问题:
由于我们没有自己的服务器来处理此问题,我们是否需要第三方提供商(例如Batch)来处理推送通知?如果我没有错,我认为Firebase不支持像这样发送推送通知,而只能从控制台发送。
任何帮助都将是非常好的。
希望有人能发现这个有用,它在我的案例中有所帮助。
目前,使用Firebase提供的解决方案无法实现设备到设备的推送通知。如果你需要那种功能,可以尝试使用OneSignal,它是免费且非常易于实现的。
新版 Firebase 有两个功能可以向用户发送通知:
要使用 Cloud Messaging 发送消息,需要在请求中指定授权密钥。由于知道此密钥可以代表你发送消息,因此你需要将其访问权限限制为受信任的进程。这确实可以是服务器,但任何可信的进程都可以。
你可以使用Http POST请求从Android发送推送通知,我使用Retrofit来实现这个功能,例如:
Url: https://fcm.googleapis.com/fcm/send
Http Headers:
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",
}
}
您可以使用高级 REST 客户端 "Google Chrome 扩展程序" 进行测试