Notificações por push do Firebase do iOS: como fornecer token de dispositivo do usuário do Firebase e enviar notificação

Recentemente, no evento de E / S do Google, o Google renovou o Firebase e adicionou muitos novos recursos, além de retomar os demais. Estou tentando implementar as notificações por push do iOS via Firebase no meu aplicativo até o nível mais básico. Por isso, criei um aplicativo muito simples que realmente não faz nada além de receber notificações por push remotas.

Dentro do Firebase, carreguei meu certificado e, no Xcode, meus perfis de provisionamento foram adicionados ao destino e ao projeto e, no Firebase, carreguei o certificado correto. Abaixo está o código contido dentro do meuAppDelegate.swift arquivo, mas porque o meuViewController.swift está "vazio", não o incluí.

Embora não haja falhas ou erros de tempo de execução, quando carrego o aplicativo, aceito as notificações. Então, saio do aplicativo e desligo o dispositivo. No Firebase, envio a notificação para o aplicativo correto. Após alguns minutos, no Firebase, ele diz que a notificação foi "Concluída".

No entanto, nunca recebi a notificação no dispositivo. Concluindo, preciso de uma solução para enviar o FirebasedeviceToken e use 'Firebase Notifications' para enviar a mensagem de notificação por push.

Qualquer ajuda para o meu código ou, em geral, seria muito apreciada e espero que ajude os futuros espectadores. Obrigado! Meu código emAppDelegate.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)

    }


}

questionAnswers(3)

yourAnswerToTheQuestion