Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS Firebase云消息:使用控制台发送的消息失败_Ios_Swift_Firebase_Firebase Cloud Messaging - Fatal编程技术网

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

iOS Firebase云消息:使用控制台发送的消息失败,ios,swift,firebase,firebase-cloud-messaging,Ios,Swift,Firebase,Firebase Cloud Messaging,我按照他们文档中的说明设置Firebase云消息传递,即将APNs身份验证密钥上载到Firebase以建立FCM->APNs连接。 我仔细检查了这个密钥的keyId和appid前缀 我能够在我的AppDelegate中使用此实现在应用中接收FCM令牌: // MARK: - Firebase Messaging delegate extension AppDelegate: MessagingDelegate { var fcmToken: String? { retu

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

我能够在我的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来发送一个通知,正如在这篇博客文章中所解释的:,我得到了以下响应:

{多播_id:5245063881031284671,成功:0,失败:1,规范_id:0,结果:[{error:mistchsenderid}]}


我将调查这个不匹配的Senderid。

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

你在Firebase上上传了.p12文件了吗?是的,实际上,我上传了APNs身份验证密钥,现在是.p8,这是Firebase推荐的方法