Firebase SDK无法提供后台通知

时间:2016-07-27 21:24:05

标签: ios swift google-cloud-messaging

我正在尝试使用Firebase向我的应用发送后台推送通知。 iOS显示通知正常,但我的-application:didReceiveRemoteNotification:fetchCompletionHandler:未调用AppDelegate

当设备连接到调试器时,我会在设备收到通知时收到以下日志消息。

  

2016-07-27 15:13:08.234:FIRMessaging在无效状态2中接收通知

     

2016-07-27 15:13:08.234 MyApp [2513:1130209]警告:应用程序委托收到对-application的调用:didReceiveRemoteNotification:fetchCompletionHandler:但是从未调用完成处理程序。

我认为Firebase正在调整-application:didReceiveRemoteNotification:fetchCompletionHandler:,但未能调用我的实现,因为它认为应用程序处于无效状态,而不是。

对于应该导致问题的通知有效负载,Theres也没什么特别的。

{
    gcm.message_id: 0:1469652824137045%3aef914a3aef914a, 
    objectId: 7,
    aps: {
        alert: "Your object has been updated"
        content-available: 1
    }
}

为什么Firebase说该应用处于无效状态且无法将通知转发给我的AppDelegate

1 个答案:

答案 0 :(得分:0)

我认为您可能误解了错误 - 发生此错误是因为您的应用didReceiveRemoteNotification处理程序 被调用。

问题可能出在您的didReceiveRemoteNotification处理程序中,您需要确保使用正确的completionHandler类型调用UIBackgroundFetchResult。 (如果你在Swift中,它可能看起来像completionHandler(.NewData)。)

这基本上是你的应用程序的方式让iOS知道它已经完成了你发送远程通知时你想做的任何工作。如果您不这样做,iOS将对您的应用程序感到不满,并可能在将来停止转发通知。