使用 Swift 3 调试 Firebase
Posted
技术标签:
【中文标题】使用 Swift 3 调试 Firebase【英文标题】:Debugging Firebase with Swift 3 【发布时间】:2017-07-07 13:30:41 【问题描述】:我正在尝试调试为什么我无法从 iPhone 上的 firebase 获取消息, 我已连接到 FCM 服务器,并且我还订阅了一个主题,但是,当我尝试打印从 FCM 接收的数据时,我得到 nil 值。
这是我从谷歌教程中获得的代码,它被执行,这是否意味着应用程序被正确通知 FCM 上有一个新主题可用?
另外,我如何调试以查看我在设置 FCM 时是否做错了什么?
谢谢
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
let userInfo = notification.request.content.userInfo
// Print message ID.
FIRMessaging.messaging().subscribe(toTopic: "/topics/newNotificationtest")
print("Message ID: \(userInfo["gcm.message_id"])")
debugPrint(userInfo)
// Print full message.
print("%@", userInfo)
【问题讨论】:
你试过Firebase Messaging for Swift的样本吗? 当我创建一个新应用并设置我自己的 firebase 项目时,我能够让它工作。我收到了来自其他人负责的 firebase 项目的通知。据我所知,我得到了 GoogleService-Info.plist,一切都是正确的。 Bundle_ID 匹配,我给了他们 .p8 身份验证密钥。我仍然在 didReceiveRemoteNotification 方法中获得 Message ID: nil ,除此之外,我似乎确实连接并获得了 Firebase 令牌。还有什么想法吗? 在旁注中,我收到一条弹出通知。这是我为后台提取创建的,但不再使用。我没有拨打任何电话或设置通知,但它仍然会弹出。这些是否以某种方式相关以及为什么我会弹出此通知,即使没有调用设置它的代码? 【参考方案1】:请尝试使用此代码并进行调试
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject],fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
FIRMessaging.messaging().appDidReceiveMessage(userInfo)
let aps = userInfo["aps"] as? NSDictionary
print(aps)
print(userInfo)
print("Message ID: \(userInfo["gcm.message_id"]!)")
print("%@", userInfo)
【讨论】:
感谢您的建议,该方法不会被调用。知道为什么会这样吗?以上是关于使用 Swift 3 调试 Firebase的主要内容,如果未能解决你的问题,请参考以下文章
无法调试嵌入在 Objective-C 应用程序中的 Swift 模块/框架