我有一个Firebase Swift聊天应用,我想向特定用户发送推送通知。我已经捕获并可以访问用户的设备令牌。
所有参考文献都提到必须有一个“网络应用程序”来管理这个,但我还没有找到任何具体的例子。
是否需要使用网络应用来管理Firebase的推送通知?
如果有,是否有任何关于如何运作的例子?
谢谢。
答案 0 :(得分:0)
import FirebaseMessaging
在您的 AppDelegate.swift
文件中。AppDelegate
类。didRefreshRegistrationToken
委托方法并获取用户的注册令牌:现在,您可以准备向特定用户发送推送通知了。发送通知如下:
func sendPushNotification(payloadDict: [String: Any]) {
let url = URL(string: "https://fcm.googleapis.com/fcm/send")!
var request = URLRequest(url: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
// get your **server key** from your Firebase project console under **Cloud Messaging** tab
request.setValue("key=enter your server key", forHTTPHeaderField: "Authorization")
request.httpMethod = "POST"
request.httpBody = try? JSONSerialization.data(withJSONObject: payloadDict, options: [])
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print(error ?? "")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print(response ?? "")
}
print("Notfication sent successfully.")
let responseString = String(data: data, encoding: .utf8)
print(responseString ?? "")
}
task.resume()
}
现在将上面的函数调用为:
let userToken = "your specific user's firebase registration token"
let notifPayload: [String: Any] = ["to": userToken,"notification": ["title":"You got a new meassage.","body":"This message is sent for you","badge":1,"sound":"default"]]
self.sendPushNotification(payloadDict: notifPayload)
答案 1 :(得分:0)
不,不需要网络应用来管理 Firebase 推送通知
看看 Ashvini 的回答,它为您提供了一种直接从您的 iOS 应用向其他设备发送消息的方法。
您还可以使用 Firebase 控制台手动向多个用户同时发送推送消息。
这是通过网络应用程序/服务器发送消息的文档。 Firebase Documentation