#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 есть МНОГО вопросов о диагностике того, что пошло не так при отправке сообщения. Я предлагаю провести некоторое исследование, поскольку вы, вероятно, не сталкиваетесь с чем-то новым.