Пробуем FCM. Первые шаги

#ios #swift #firebase #firebase-cloud-messaging

#iOS #swift #firebase #firebase-облако-обмен сообщениями

Вопрос:

Я пробую Firebase Cloud Messaging. На данный момент я прочитал пару связанных документов, но у меня ничего не работает.

Я уже настроил приложение для iOS и проект Firebase для этой цели.

Глядя на этот пример GitHub, у меня возник вопрос.

Предназначена ли эта строка кода для использования как есть, или это заполнитель, где я должен заменить «gcm.message_id» на какой-то мой идентификатор? (Если ДА, то что?)

   let gcmMessageIDKey = "gcm.message_id"
  

Более подробно код выглядит следующим образом:

 ....
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?
  let gcmMessageIDKey = "gcm.message_id"

  func application(_ application: UIApplication,
                   didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    FirebaseApp.configure()

    // [START set_messaging_delegate]
    Messaging.messaging().delegate = self
    // [END set_messaging_delegate]

.......
  

А затем gcmMessageIDKey используется позже в коде, как здесь:

   func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
    // If you are receiving a notification message while your app is in the background,
    // this callback will not be fired till the user taps on the notification launching the application.
    // TODO: Handle data of notification
    // With swizzling disabled you must let Messaging know about the message, for Analytics
    // Messaging.messaging().appDidReceiveMessage(userInfo)
    // Print message ID.
    if let messageID = userInfo[gcmMessageIDKey] {
      print("Message ID: (messageID)")
    }

    // Print full message.
    print(userInfo)
  }
  

Мне интересно, потому что я уже пытался включить часть этого кода в свое собственное приложение, где это, кажется, имеет смысл. А затем из консоли Firebase Cloud Messaging попытался отправить тестовое сообщение.
Но вообще ничего не работает.

Любой, даже небольшой, актуальный совет для продвижения вперед, будет очень приветствоваться.

Комментарии:

1. Пожалуйста, отредактируйте вопрос, чтобы показать полный пример кода. Внешние ссылки могут со временем меняться или устаревать, что сделает этот вопрос бесполезным для других в будущем.

2. Я только что отредактировал вопрос.

Ответ №1:

Строка должна восприниматься буквально. Это ключ userInfo хэша, используемый для получения значения идентификатора входящего сообщения FCM.

Если вы вообще не получаете сообщение, что-то еще не так и не имеет ничего общего со значением этой строки.

Комментарии:

1. ОК. О том, что может быть не так, что бы вы проверили в первую очередь? Зная, что я ранее довольно много читал и готовился (настраивал проект Firebase, чтобы это работало, устанавливал APN ….)

2. В Stack Overflow есть МНОГО вопросов о диагностике того, что пошло не так при отправке сообщения. Я предлагаю провести некоторое исследование, поскольку вы, вероятно, не сталкиваетесь с чем-то новым.