Pour démarrer avec FCM, créez le cas d'utilisation le plus simple : envoyer un message de notification de test du compositeur de notifications à un appareil de développement lorsque l'application est en arrière-plan sur l'appareil. Cette page répertorie toutes les étapes pour y parvenir, de la configuration à la vérification. Elle peut couvrir les étapes que vous avez déjà effectuées si vous avez configuré une application client Apple pour FCM.
Ajoutez Firebase à votre projet Apple
Cette section couvre les tâches que vous avez peut-être effectuées si vous avez déjà activé d'autres fonctionnalités Firebase pour votre application. Pour FCM spécifiquement, vous devrez télécharger votre clé d'authentification APNs et vous inscrire aux notifications à distance .
Conditions préalables
Installez les éléments suivants :
- Xcode 14.1 ou version ultérieure
Assurez-vous que votre projet répond à ces exigences :
- Votre projet doit cibler ces versions de plateforme ou ultérieures :
- iOS 11
- macOS 10.13
- tvOS 12
- montreOS 6
- Votre projet doit cibler ces versions de plateforme ou ultérieures :
Configurez un appareil Apple physique pour exécuter votre application et effectuez ces tâches :
- Obtenez une clé d'authentification de notification push Apple pour votre compte de développeur Apple .
- Activez les notifications push dans XCode sous App > Capabilities .
- Connectez-vous à Firebase à l'aide de votre compte Google.
Si vous n'avez pas encore de projet Xcode et que vous souhaitez simplement essayer un produit Firebase, vous pouvez télécharger l'un de nos exemples de démarrage rapide .
Créer un projet Firebase
Avant de pouvoir ajouter Firebase à votre application Apple, vous devez créer un projet Firebase pour vous connecter à votre application. Consultez Comprendre les projets Firebase pour en savoir plus sur les projets Firebase.
Enregistrez votre application avec Firebase
Pour utiliser Firebase dans votre application Apple, vous devez enregistrer votre application auprès de votre projet Firebase. L'enregistrement de votre application est souvent appelé « ajouter » votre application à votre projet.
Accédez à la console Firebase .
Au centre de la page de présentation du projet, cliquez sur l'icône iOS+ pour lancer le workflow de configuration.
Si vous avez déjà ajouté une application à votre projet Firebase, cliquez sur Ajouter une application pour afficher les options de la plateforme.
Saisissez l'ID du bundle de votre application dans le champ ID du bundle .
Un identifiant de bundle identifie de manière unique une application dans l'écosystème Apple.
Recherchez votre ID de bundle : ouvrez votre projet dans Xcode, sélectionnez l'application de niveau supérieur dans le navigateur de projet, puis sélectionnez l'onglet Général .
La valeur du champ Bundle Identifier est l'ID du bundle (par exemple,
com.yourcompany.yourproject
).Sachez que la valeur de l'ID du bundle est sensible à la casse et qu'elle ne peut pas être modifiée pour cette application Firebase une fois qu'elle est enregistrée auprès de votre projet Firebase.
(Facultatif) Saisissez d'autres informations sur l'application : pseudonyme de l'application et identifiant App Store .
Pseudonyme de l'application : un identifiant interne pratique qui n'est visible que par vous dans la console Firebase
ID App Store : utilisé par Firebase Dynamic Links pour rediriger les utilisateurs vers votre page App Store et par Google Analytics pour importer des événements de conversion dans Google Ads . Si votre application ne dispose pas encore d'un identifiant App Store, vous pouvez ajouter l'identifiant ultérieurement dans les paramètres de votre projet .
Cliquez sur Enregistrer l'application .
Ajouter un fichier de configuration Firebase
Cliquez sur Télécharger GoogleService-Info.plist pour obtenir le fichier de configuration de votre plate-forme Firebase Apple (
GoogleService-Info.plist
).Le fichier de configuration Firebase contient des identifiants uniques mais non secrets pour votre projet. Pour en savoir plus sur ce fichier de configuration, visitez Comprendre les projets Firebase .
Vous pouvez télécharger à nouveau votre fichier de configuration Firebase à tout moment.
Assurez-vous que le nom du fichier de configuration n'est pas suivi de caractères supplémentaires, comme
(2)
.
Déplacez votre fichier de configuration à la racine de votre projet Xcode. Si vous y êtes invité, choisissez d'ajouter le fichier de configuration à toutes les cibles.
Si vous avez plusieurs ID de bundle dans votre projet, vous devez associer chaque ID de bundle à une application enregistrée dans la console Firebase afin que chaque application puisse avoir son propre fichier GoogleService-Info.plist
.
Ajouter des SDK Firebase à votre application
Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.
- Dans Xcode, avec votre projet d'application ouvert, accédez à File > Add Packages .
- Lorsque vous y êtes invité, ajoutez le référentiel SDK des plates-formes Apple Firebase :
- Choisissez la bibliothèque Firebase Cloud Messaging.
- Ajoutez l'indicateur
-ObjC
à la section Autres indicateurs de l'éditeur de liens des paramètres de construction de votre cible. - Pour une expérience optimale avec Firebase Cloud Messaging, nous vous recommandons d'activer Google Analytics dans votre projet Firebase et d'ajouter le SDK Firebase pour Google Analytics à votre application. Vous pouvez sélectionner soit la bibliothèque sans collection IDFA, soit avec la collection IDFA.
- Une fois terminé, Xcode commencera automatiquement à résoudre et à télécharger vos dépendances en arrière-plan.
https://github.com/firebase/firebase-ios-sdk.git
Téléchargez votre clé d'authentification APNs
Téléchargez votre clé d'authentification APN sur Firebase. Si vous ne disposez pas déjà d'une clé d'authentification APNs, assurez-vous d'en créer une dans le Centre des membres des développeurs Apple .
Dans votre projet dans la console Firebase, sélectionnez l'icône d'engrenage, sélectionnez Paramètres du projet , puis sélectionnez l'onglet Messagerie cloud .
Dans Clé d'authentification APN sous Configuration de l'application iOS , cliquez sur le bouton Télécharger .
Accédez à l'emplacement où vous avez enregistré votre clé, sélectionnez-la et cliquez sur Ouvrir . Ajoutez l'ID de clé pour la clé (disponible dans le Centre des membres des développeurs Apple ) et cliquez sur Télécharger .
Initialisez Firebase dans votre application
Vous devrez ajouter le code d'initialisation Firebase à votre application. Importez le module Firebase et configurez une instance partagée comme indiqué :
- Importez le module
FirebaseCore
dans votreUIApplicationDelegate
, ainsi que tous les autres modules Firebase utilisés par votre délégué d'application. Par exemple, pour utiliser Cloud Firestore et l'authentification :SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Rapide
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objectif c
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Configurez une instance partagée
FirebaseApp
dans la méthodeapplication(_:didFinishLaunchingWithOptions:)
de votre délégué d'application :SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Rapide
// Use Firebase library to configure APIs FirebaseApp.configure()
Objectif c
// Use Firebase library to configure APIs [FIRApp configure];
- Si vous utilisez SwiftUI, vous devez créer un délégué d'application et l'attacher à votre structure
App
viaUIApplicationDelegateAdaptor
ouNSApplicationDelegateAdaptor
. Vous devez également désactiver le swizzling des délégués d’application. Pour plus d'informations, consultez les instructions SwiftUI .SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Inscrivez-vous aux notifications à distance
Soit au démarrage, soit au moment souhaité dans votre flux de candidature, enregistrez votre application pour les notifications à distance. AppelezregisterForRemoteNotifications
comme indiqué :Rapide
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
Objectif c
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
Accéder au jeton d'inscription
Pour envoyer un message à un appareil spécifique, vous devez connaître le jeton d'enregistrement de cet appareil. Étant donné que vous devrez saisir le jeton dans un champ du compositeur de notifications pour terminer ce didacticiel, assurez-vous de copier le jeton ou de le stocker en toute sécurité après l'avoir récupéré.
Par défaut, le SDK FCM génère un jeton d'enregistrement pour l'instance d'application cliente au lancement de l'application. Semblable au jeton de périphérique APNs, ce jeton vous permet d'envoyer des notifications ciblées à n'importe quelle instance particulière de votre application.
De la même manière que les plates-formes Apple fournissent généralement un jeton de périphérique APNs au démarrage de l'application, FCM fournit un jeton d'enregistrement via la méthode messaging:didReceiveRegistrationToken:
de FIRMessagingDelegate
. Le SDK FCM récupère un jeton nouveau ou existant lors du lancement initial de l'application et chaque fois que le jeton est mis à jour ou invalidé. Dans tous les cas, le SDK FCM appelle messaging:didReceiveRegistrationToken:
avec un jeton valide.
Le jeton d'enregistrement peut changer lorsque :
- L'application est restaurée sur un nouvel appareil
- L'utilisateur désinstalle/réinstalle l'application
- L'utilisateur efface les données de l'application.
Définir le délégué de messagerie
Pour recevoir des jetons d'enregistrement, implémentez le protocole délégué de messagerie et définissez la propriété delegate
de FIRMessaging
après avoir appelé [FIRApp configure]
. Par exemple, si votre délégué d’application est conforme au protocole de délégué de messagerie, vous pouvez définir le délégué sur application:didFinishLaunchingWithOptions:
sur lui-même.
Rapide
Messaging.messaging().delegate = self
Objectif c
[FIRMessaging messaging].delegate = self;
Récupérer le jeton d'enregistrement actuel
Les jetons d'enregistrement sont délivrés via la méthode messaging:didReceiveRegistrationToken:
. Cette méthode est généralement appelée une fois par démarrage d'application avec un jeton d'enregistrement. Lorsque cette méthode est appelée, c'est le moment idéal pour :
- Si le jeton d'enregistrement est nouveau, envoyez-le à votre serveur d'applications.
- Abonnez le jeton d'inscription aux sujets. Ceci n'est requis que pour les nouveaux abonnements ou pour les situations dans lesquelles l'utilisateur a réinstallé l'application.
Vous pouvez récupérer le jeton directement en utilisant token(completion:) . Une erreur non nulle est fournie si la récupération du jeton a échoué de quelque manière que ce soit.
Rapide
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objectif c
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];
Vous pouvez utiliser cette méthode à tout moment pour accéder au jeton au lieu de le stocker.
Actualisation du jeton de surveillance
Pour être averti chaque fois que le jeton est mis à jour, fournissez un délégué conforme au protocole de délégué de messagerie. L'exemple suivant enregistre le délégué et ajoute la méthode délégué appropriée :
Rapide
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { print("Firebase registration token: \(String(describing: fcmToken))") let dataDict: [String: String] = ["token": fcmToken ?? ""] NotificationCenter.default.post( name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict ) // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
Objectif c
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken { NSLog(@"FCM registration token: %@", fcmToken); // Notify about received token. NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"]; [[NSNotificationCenter defaultCenter] postNotificationName: @"FCMToken" object:nil userInfo:dataDict]; // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
Vous pouvez également écouter une NSNotification
nommée kFIRMessagingRegistrationTokenRefreshNotification
plutôt que de fournir une méthode déléguée. La propriété token a toujours la valeur actuelle du jeton.
Envoyer un message de notification
Installez et exécutez l'application sur l'appareil cible. Sur les appareils Apple, vous devrez accepter la demande d'autorisation pour recevoir des notifications à distance.
Assurez-vous que l'application est en arrière-plan sur l'appareil.
Dans la console Firebase, ouvrez la page Messagerie .
S'il s'agit de votre premier message, sélectionnez Créer votre première campagne .
- Sélectionnez Messages de notification Firebase et sélectionnez Créer .
Sinon, sous l'onglet Campagnes , sélectionnez Nouvelle campagne puis Notifications .
Saisissez le texte du message. Tous les autres champs sont facultatifs.
Sélectionnez Envoyer un message test dans le volet de droite.
Dans le champ intitulé Ajouter un jeton d'enregistrement FCM , saisissez le jeton d'enregistrement que vous avez obtenu dans une section précédente de ce guide.
Sélectionnez Tester .
Après avoir sélectionné Test , l'appareil client ciblé (avec l'application en arrière-plan) devrait recevoir la notification.
Pour obtenir un aperçu de la transmission des messages à votre application, consultez le tableau de bord de reporting FCM , qui enregistre le nombre de messages envoyés et ouverts sur les appareils Apple et Android, ainsi que les données sur les « impressions » (notifications vues par les utilisateurs) pour les applications Android.
Prochaines étapes
Pour aller au-delà des messages de notification et ajouter d'autres comportements plus avancés à votre application, consultez :