Firebase 消息传递 iOS:usersInfo 为空或我从未收到通知

Posted

技术标签:

【中文标题】Firebase 消息传递 iOS:usersInfo 为空或我从未收到通知【英文标题】:Firebase messaging iOS : usersInfo is empty or I never get the notification 【发布时间】:2016-06-15 13:49:04 【问题描述】:

我遵循 Google Firebase 的规则来配置我的 ios 应用。当我向 Firebase 控制台提供从未使用过的设备 ID(令牌)时,通知被我的应用程序捕获,但 userInfo 为空:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
                   fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) 
    // If you are receiving a notification message while your app is in the background,
    // this callback will not be fired till the user taps on the notification launching the application.
    // TODO: Handle data of notification

    // Print message ID.
    print("Message ID: \(userInfo["gcm.message_id"]!)") /* HERE */

    // Print full message.
    print("%@", userInfo)

/* HERE */ 注释行中,应用程序崩溃,因为 userInfo 是 nil

当我再次尝试来自 Firebase 控制台的另一个通知时,通知没有被捕获并且没有附加任何内容(我在接收通知函数中有一个断点)。

怎么了?

【问题讨论】:

【参考方案1】:

确保您使用的是生成的 Firebase 令牌,而不是出现此错误的设备令牌。您需要将其放入您的代码中以获得所需的令牌:

print(FIRInstanceID.instanceID().token())

我把它放在我的代码中:

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

【讨论】:

以上是关于Firebase 消息传递 iOS:usersInfo 为空或我从未收到通知的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云消息传递 - iOS 徽章

Firebase 云消息传递未在 iOS 14 上提供推送通知

无法将iOS CriticalAlert发送到Firebase云消息传递

来自 iOS 节点管理员的 Firebase 消息传递

Firebase 云消息传递 - PHP Rest API 不适用于 iOS

iOS 未收到来自 Firebase 云消息传递的通知