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 14 上提供推送通知
无法将iOS CriticalAlert发送到Firebase云消息传递