iOS - Firebase 消息 : What is kGCMMessageIDKey?

标签 ios objective-c firebase-cloud-messaging

我正在尝试实现与 Google Firebase 的聊天。我正在按照教程进行操作,但我无法继续,因为正在使用未声明的变量,而且我无法在任何地方找到它的来源。该变量称为 kGCMMessageIDKey

它在这里首先被用作:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

  if (userInfo[kGCMMessageIDKey]) {

    NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
  }

在示例项目中,kGCMMessageIDKey 在 AppDelegate 中声明为

NSString *const kGCMMessageIDKey = @"gcm.message_id";

我觉得这是我应该从 Firebase 仪表板获取的常量,但我也在那里找不到任何对应的 ID。

最佳答案

该值应该是消息的唯一 ID,并且应该与您在与 Firebase 云消息传递 API 交互时看到的消息的 message_id 参数相匹配。从设备使用 FCM API/服务时,您还可以使用该值来引用消息。

是的,您似乎需要将该常量声明粘贴到您的代码中,或者将其替换为 @"gcm.message_id"。该值似乎并不重要,此代码段主要用于调试。

我建议您在 didReceiveRemoteNotification 中设置一个断点并检查 userInfo 的内容,以熟悉 FCM 的消息负载和可用的各种属性和 iOS。当遇到断点时,在调试器中键入以下内容:

(lldb) po userInfo

关于iOS - Firebase 消息 : What is kGCMMessageIDKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141428/

相关文章:

ios - iTunes Connect 下载统计

ios - RealityKit 中的第一人称体验

android - Android 忽略 FCM 通知优先级

firebase - FCM 通知和 collapse_key

ios - iOS设备上的Firebase InstanceID token 刷新延迟

ios - 如何判断循环中的 block 是否全部执行完毕?

ios - 这里有一些可选的错误吗?

ios - 如何知道SKSpriteNode是否处于运动或停止状态?

objective-c - 如何获取 NSOutLineView 中的特定项目?

ios - 动画 barTintColor 推送 segue