我按照文档中的说明设置了Firebase Cloud 消息传递,即将APNs身份验证密钥上传到Firebase以 Build 连接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发送通知 . 我的测试很简单: Headers 和FCM令牌 .
但后来我收到一个错误,我可以't figure out what happens (Firebase doesn'吨提供很多细节):
这很奇怪,因为我之前已经在另一个iOS应用程序上实现了FCM(虽然不太复杂),我检查了设置是否一致 .
唯一的区别是这个应用程序有几个目标 .
Am I correct by thinking that if I get a FCM Token, the configuration between APNs and Firebase is correct? 我还可以尝试调试这个?
UPDATE :我使用curl发送通知(如本博客文章中所述:https://firebase.googleblog.com/2017/01/debugging-firebase-cloud-messaging-on.html),我得到以下回复:
{“multicast_id”:5245063881031284671,“success”:0,“failure”:1,“canonical_ids”:0,“results”:[{“error”:“MismatchSenderId”}]}
我将研究这个“MismatchSenderId” .
1 回答
好吧,显然我的GoogleInfo.plist有点搞砸了,所以我从Firebase再次下载它现在可以正常工作了 .