Я пытаюсь использовать консоль Firebase FCM для отправки уведомления всем подписчикам определенного топи c. проблема в том, что я получаю уведомление только на одном устройстве, вот мой код в делегате приложения:
FirebaseApp.configure()
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
application.registerForRemoteNotifications()
UNUserNotificationCenter.current().delegate = self
Messaging.messaging().delegate = self
return true
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
let dataDict:[String: String] = ["token": fcmToken]
NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
InstanceID.instanceID().instanceID { (result, error) in
if let error = error {
print("Error fetching remote instance ID: \(error)")
} else if let result = result {
print("Remote instance ID token: \(result.token)")
DispatchQueue.main.async {
Messaging.messaging().subscribe(toTopic: "Athan") { error in
print("Subscribed to athan topic")
}
}
}
}
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
if let messageID = userInfo[gcmMessageIDKey] {
print("Message ID: \(messageID)")
}
print(userInfo)
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if let messageID = userInfo[gcmMessageIDKey] {
print("Message ID: \(messageID)")
}
if let message : [String : Any] = userInfo["aps"] as? [String : Any]{
print(message,"test",userInfo)
if let messageAlert : [String : Any] = message["alert"] as? [String : Any]{
if let lBody : String = messageAlert["body"] as? String, let lTitle : String = messageAlert["title"] as? String{
print (lBody,lTitle)
if lTitle == "Notification" && lBody.contains("Your daily verse is here") {
}
}
}
}
let sName = userInfo["sound"] as? String
if sName == "athan.caf"{
let url = URL(fileURLWithPath: "\(Bundle.main.resourcePath!)/\(sName ?? "")")
audioPlayer = try? AVAudioPlayer(contentsOf: url)
audioPlayer?.numberOfLoops = 0
audioPlayer?.play()
}
completionHandler(UIBackgroundFetchResult.newData)
}
как я могу убедиться, что все подписчики моего topi c получают эти уведомления pu sh ? Что мне нужно сделать с токеном устройства и отправить его в консоль Firebase FCM?