我按照其文档中的说明设置Firebase云消息传递,即将APNs身份验证密钥上传到Firebase以建立连接FCM - >的APN。
我仔细检查了这个密钥的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令牌。
但后来我收到错误,我无法弄清楚会发生什么(Firebase没有提供太多细节):
这很奇怪,因为我之前已经在另一个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”。
答案 0 :(得分:0)
好的,显然我的GoogleInfo.plist有点搞砸了,所以我从Firebase再次下载它,现在可以正常工作。