iOS-Firebase消息传递:什么是kGCMMessageIDKey?

Sam*_*Sam 6 objective-c ios firebase-cloud-messaging

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

它首先在这里用作:

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

  if (userInfo[kGCMMessageIDKey]) {

    NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]);
  }
Run Code Online (Sandbox Code Playgroud)

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

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

我感觉这是我应该从Firebase仪表板获取的常数,但是我也找不到任何相应的ID。

Ada*_*lan 4

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

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

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

(lldb) po userInfo
Run Code Online (Sandbox Code Playgroud)