Notificaciones push de Firebase para iOS: cómo proporcionar tokens de dispositivo del usuario de Firebase y enviar notificaciones

Recientemente, en el evento de E / S de Google, Google renovó Firebase y agregó muchas características nuevas, y retocó las restantes. He estado tratando de implementar las notificaciones push de iOS a través de Firebase en mi aplicación a través del nivel más básico, así que creé una aplicación muy simple que realmente no hace nada más que recibir notificaciones push remotas.

Dentro de Firebase, he subido mi certificado y dentro de Xcode mis perfiles de aprovisionamiento se han agregado tanto al objetivo como al proyecto, y en Firebase he subido el certificado correcto. A continuación se muestra el código contenido dentro de miAppDelegate.swift archivo pero porque miViewController.swift está "vacío", no lo incluí.

Aunque no hay fallas ni errores de tiempo de ejecución, cuando cargo la aplicación, acepto las notificaciones. Luego, salgo de la aplicación y apago mi dispositivo. En Firebase, envío la notificación a la aplicación correcta. Después de un par de minutos, en Firebase dice que la notificación fue "Completada".

Sin embargo, nunca recibí la notificación en el dispositivo. En conclusión, necesito una solución para enviar esto a FirebasedeviceToken y luego use 'Notificaciones de Firebase' para enviar el mensaje de notificación push.

Cualquier ayuda para mi código o en general sería muy apreciada y espero que esto ayude a los futuros espectadores. ¡Gracias! Mi código enAppDelegate.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)

    }


}

Respuestas a la pregunta(3)

Su respuesta a la pregunta