适用于iOS的Firebase云消息传递:使用控制台发送的消息失败

时间:2018-03-09 13:38:31

标签: ios swift firebase firebase-cloud-messaging

我按照其文档中的说明设置Firebase云消息传递,即将APNs身份验证密钥上传到Firebase以建立连接FCM - >的APN。 APNs auth key upload 我仔细检查了这个密钥的keyId和App ID前缀。

我可以在AppDelegate中使用此实现在应用程序中收到FCM令牌:

// MARK: - Firebase Messaging delegate
extension AppDelegate: MessagingDelegate {

    var fcmToken: String? {
        return Messaging.messaging().fcmToken
    }

    func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {

        print("FCM (Firebase Cloud Messaging) registration token: \(fcmToken)")

        // TODO: Send token to application server (for login / logout)
        // Note: This callback is fired at each app startup and whenever a new token is generated.
    }
}

这是一个很好的第一步。然后,我尝试从Firebase控制台中的Notification Composer发送通知。 我的测试很简单:标题和FCM令牌。 Notification Composer

但后来我收到错误,我无法弄清楚会发生什么(Firebase没有提供太多细节): Failure sending notification

这很奇怪,因为我之前已经在另一个iOS应用程序上实现了FCM(虽然不太复杂),我检查了设置是否一致。

唯一的区别是这个应用程序有几个目标。

我是否认为如果我获得FCM令牌,APN和Firebase之间的配置是否正确? 还有什么可以尝试调试它?

更新:我使用curl发送通知(如本博文中所述:https://firebase.googleblog.com/2017/01/debugging-firebase-cloud-messaging-on.html),我得到以下回复:

  

{ “multicast_id”:5245063881031284671, “成功”:0, “失败”:1, “canonical_ids”:0 “结果”:[{ “错误”: “MismatchSenderId”}]}

我会调查这个“MismatchSenderId”。

1 个答案:

答案 0 :(得分:0)

好的,显然我的GoogleInfo.plist有点搞砸了,所以我从Firebase再次下载它,现在可以正常工作。