iOS Firebase Push Notifications: So geben Sie dem Firebase-Benutzer ein Token für das Gerät und senden eine Benachrichtigung

Etwas kürzlich bei der Google I / O-Veranstaltung hat Google Firebase renoviert, viele neue Funktionen hinzugefügt und die verbleibenden verbessert. Ich habe versucht, die iOS-Push-Benachrichtigungen über Firebase auf der einfachsten Ebene in meine App zu implementieren. Daher habe ich eine sehr einfache App erstellt, die wirklich nichts anderes tut, als Remote-Push-Benachrichtigungen zu erhalten.

Innerhalb von Firebase habe ich mein Zertifikat hochgeladen und in Xcode wurden meine Bereitstellungsprofile sowohl dem Ziel als auch dem Projekt hinzugefügt. In Firebase habe ich das richtige Zertifikat hochgeladen. Unten ist der Code in meinem @ enthaltAppDelegate.swift Datei aber weil meinViewController.swift ist "leer", ich habe es nicht angegeben.

Obwohl es keine Abstürze oder Laufzeitfehler gibt, akzeptiere ich beim Laden der App die Benachrichtigungen. Dann verlasse ich die App und schalte mein Gerät aus. In Firebase sende ich die Benachrichtigung an die richtige App. Nach ein paar Minuten wird in Firebase angezeigt, dass die Benachrichtigung "Abgeschlossen" war.

Ich habe jedoch nie eine Benachrichtigung auf dem Gerät erhalten. Abschließend brauche ich also eine Lösung, um Firebase dieses @ zu sendedeviceToken und verwenden Sie dann 'Firebase Notifications', um die Push-Benachrichtigung zu senden.

Jede Hilfe für meinen Code oder allgemein wäre sehr dankbar und ich hoffe, dies hilft zukünftigen Zuschauern. Vielen Dank! Mein Code inAppDelegate.swift :

import UIKit
import Firebase
import FirebaseMessaging

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        FIRApp.configure()

        let notificationTypes : UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound]

        let notificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: nil)

        application.registerForRemoteNotifications()
        application.registerUserNotificationSettings(notificationSettings)

        return true
    }

    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {

        print("Device Token: \(deviceToken)")

    }

    func applicationWillResignActive(application: UIApplication) {

    }

    func applicationDidEnterBackground(application: UIApplication) {

    }

    func applicationWillEnterForeground(application: UIApplication) {

    }

    func applicationDidBecomeActive(application: UIApplication) {

    }

    func applicationWillTerminate(application: UIApplication) {

    }

    func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {

        print("MessageID : \(userInfo["gcm.messgae_id"]!)") // or gcm_etc...

        print(userInfo)

    }


}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage