Um mit FCM zu beginnen, erstellen Sie den einfachsten Anwendungsfall: Senden Sie eine Testbenachrichtigung vom Benachrichtigungs-Composer an ein Entwicklungsgerät, während die App auf dem Gerät im Hintergrund ausgeführt wird. Auf dieser Seite sind alle Schritte von der Einrichtung bis zur Bestätigung aufgeführt. Möglicherweise werden auch Schritte beschrieben, die Sie bereits ausgeführt haben, wenn Sie eine Apple-Client-App für FCM eingerichtet haben.
Firebase zu Ihrem Apple-Projekt hinzufügen
In diesem Abschnitt werden Aufgaben beschrieben, die Sie möglicherweise bereits ausgeführt haben, wenn Sie bereits andere Firebase-Funktionen für Ihre App aktiviert haben. Für FCM müssen Sie Ihren APNs-Authentifizierungsschlüssel hochladen und sich für Remote-Benachrichtigungen registrieren.
Vorbereitung
Installieren Sie Folgendes:
- Xcode 15.2 oder höher
Stellen Sie sicher, dass Ihr Projekt die folgenden Anforderungen erfüllt:
- Ihr Projekt muss auf folgende Plattformversionen oder höher ausgerichtet sein:
- iOS 13
- macOS 10.15
- tvOS 13
- watchOS 7
- Ihr Projekt muss auf folgende Plattformversionen oder höher ausgerichtet sein:
Richten Sie ein physisches Apple-Gerät zum Ausführen Ihrer App ein und führen Sie die folgenden Aufgaben aus:
- Fordern Sie einen Apple Push Notification-Authentifizierungsschlüssel für Ihr Apple-Entwicklerkonto an.
- Aktivieren Sie Push-Benachrichtigungen in XCode unter App > Funktionen.
Wenn Sie noch kein Xcode-Projekt haben und nur ein Firebase-Produkt ausprobieren möchten, können Sie eines unserer Schnellstartbeispiele herunterladen.
Firebase-Projekt erstellen
Bevor Sie Firebase zu Ihrer Apple-App hinzufügen können, müssen Sie ein Firebase-Projekt erstellen, um eine Verbindung zu Ihrer App herzustellen. Weitere Informationen zu Firebase-Projekten finden Sie unter Firebase-Projekte.
App bei Firebase registrieren
Damit Sie Firebase in Ihrer Apple-App verwenden können, müssen Sie Ihre App bei Ihrem Firebase-Projekt registrieren. Die Registrierung Ihrer App wird oft als „Hinzufügen“ der App zu Ihrem Projekt bezeichnet.
Rufen Sie die Firebase Console auf.
Klicken Sie in der Mitte der Projektübersicht auf das Symbol iOS+, um den Einrichtungsworkflow zu starten.
Wenn Sie Ihrem Firebase-Projekt bereits eine App hinzugefügt haben, klicken Sie auf App hinzufügen, um die Plattformoptionen aufzurufen.
Geben Sie die Bundle-ID Ihrer App in das Feld Bundle-ID ein.
Optional: Geben Sie weitere App-Informationen ein: App-Alias und App Store-ID.
Klicken Sie auf App registrieren.
Firebase-Konfigurationsdatei hinzufügen
Klicken Sie auf GoogleService-Info.plist herunterladen, um die Konfigurationsdatei für die Firebase Apple-Plattformen (
GoogleService-Info.plist
) abzurufen.Verschieben Sie die Konfigurationsdatei in das Stammverzeichnis Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, wählen Sie aus, dass die Konfigurationsdatei allen Zielen hinzugefügt werden soll.
Wenn Sie mehrere Bundle-IDs in Ihrem Projekt haben, müssen Sie jede Bundle-ID mit einer registrierten App in der Firebase-Konsole verknüpfen, damit jede App eine eigene GoogleService-Info.plist
-Datei haben kann.
Firebase SDKs zur App hinzufügen
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Gehen Sie in Xcode bei geöffnetem App-Projekt zu File > Add Packages (Datei > Pakete hinzufügen).
- Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
- Wählen Sie die Bibliothek Firebase Cloud Messaging aus.
- Fügen Sie das Flag
-ObjC
im Abschnitt Other Linker Flags (Weitere Verknüpfungsmerker) der Build-Einstellungen des Ziels hinzu. - Für eine optimale Nutzung von Firebase Cloud Messaging empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und Ihrer App das Firebase SDK für Google Analytics hinzuzufügen. Sie können entweder die Bibliothek ohne oder mit IDFA-Erfassung auswählen.
- Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.
https://github.com/firebase/firebase-ios-sdk.git
APNs-Authentifizierungsschlüssel hochladen
Laden Sie Ihren APNs-Authentifizierungsschlüssel in Firebase hoch. Wenn du noch keinen APNs-Authentifizierungsschlüssel hast, erstelle einen im Apple Developer Member Center.
-
Klicken Sie in Ihrem Projekt in der Firebase-Konsole auf das Zahnradsymbol, wählen Sie Projekteinstellungen und dann den Tab Cloud Messaging aus.
-
Klicken Sie unter APNs-Authentifizierungsschlüssel im Abschnitt Konfiguration der iOS-App auf die Schaltfläche Hochladen.
-
Rufen Sie den Speicherort auf, an dem Sie den Schlüssel gespeichert haben, wählen Sie ihn aus und klicken Sie auf Öffnen. Fügen Sie die Schlüssel-ID für den Schlüssel hinzu (verfügbar im Apple Developer Member Center) und klicken Sie auf Hochladen.
Firebase in Ihrer App initialisieren
Sie müssen Ihrer App Firebase-Initialisierungscode hinzufügen. Importieren Sie das Firebase-Modul und konfigurieren Sie eine freigegebene Instanz wie hier gezeigt:
- Importieren Sie das
FirebaseCore
-Modul in IhreUIApplicationDelegate
sowie alle anderen Firebase-Module, die Ihr App-Delegat verwendet. So verwenden Sie beispielsweise Cloud Firestore und Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Konfigurieren Sie in der Methode
application(_:didFinishLaunchingWithOptions:)
des Anwendungsdelegats eine freigegebene InstanzFirebaseApp
:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Wenn Sie SwiftUI verwenden, müssen Sie einen Anwendungsdelegierten erstellen und ihn über
UIApplicationDelegateAdaptor
oderNSApplicationDelegateAdaptor
an IhreApp
-Struktur anhängen. Außerdem müssen Sie das App-Delegate-Swizzling deaktivieren. Weitere Informationen findest du in der SwiftUI-Anleitung.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Für Remote-Benachrichtigungen registrieren
Registrieren Sie Ihre App entweder beim Start oder an der gewünschten Stelle im Ablauf Ihrer Anwendung für Remote-Benachrichtigungen. Rufen SieregisterForRemoteNotifications
wie gezeigt auf:
Swift
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
Objective-C
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
Auf das Registrierungstoken zugreifen
Wenn Sie eine Nachricht an ein bestimmtes Gerät senden möchten, benötigen Sie das Registrierungstoken dieses Geräts. Da Sie das Token in ein Feld im Benachrichtigungs-Editor eingeben müssen, um diese Anleitung abzuschließen, sollten Sie es kopieren oder sicher speichern, nachdem Sie es abgerufen haben.
Standardmäßig generiert das FCM SDK beim Starten der App ein Registrierungstoken für die Client-App-Instanz. Ähnlich wie beim APNs-Gerätetoken können Sie mit diesem Token gezielte Benachrichtigungen an eine bestimmte Instanz Ihrer App senden.
So wie Apple-Plattformen beim Starten der App in der Regel ein APNs-Gerätetoken senden, stellt FCM über die messaging:didReceiveRegistrationToken:
-Methode von FIRMessagingDelegate
ein Registrierungstoken bereit.
Das FCM SDK ruft beim ersten Start der App und jedes Mal, wenn das Token aktualisiert oder ungültig wird, ein neues oder vorhandenes Token ab.
In jedem Fall ruft das FCM SDK messaging:didReceiveRegistrationToken:
mit einem gültigen Token auf.
Das Registrierungstoken kann sich in folgenden Fällen ändern:
- Die App wird auf einem neuen Gerät wiederhergestellt
- Der Nutzer deinstalliert die App und installiert sie dann wieder
- Der Nutzer löscht die App-Daten.
Messaging-Delegierten festlegen
Um Registrierungstokens zu erhalten, implementiere das Messaging-Delegat-Protokoll und lege nach dem Aufrufen von [FIRApp configure]
das Attribut delegate
von FIRMessaging
fest.
Wenn Ihr Anwendungsdelegat beispielsweise dem Messaging-Delegatprotokoll entspricht, können Sie den Delegaten unter application:didFinishLaunchingWithOptions:
auf sich selbst festlegen.
Swift
Messaging.messaging().delegate = self
Objective-C
[FIRMessaging messaging].delegate = self;
Aktuelles Registrierungstoken abrufen
Registrierungstokens werden mit der Methode messaging:didReceiveRegistrationToken:
übermittelt. Diese Methode wird in der Regel einmal pro App-Start mit einem Registrierungstoken aufgerufen. Wenn diese Methode aufgerufen wird, ist dies der ideale Zeitpunkt für Folgendes:
- Wenn das Registrierungstoken neu ist, senden Sie es an Ihren Anwendungsserver.
- Registrieren Sie das Registrierungstoken für Themen. Dies ist nur für neue Abos oder für Situationen erforderlich, in denen der Nutzer die App neu installiert hat.
Sie können das Token direkt mit token(completion:) abrufen. Wenn der Abruf des Tokens fehlgeschlagen ist, wird ein Fehler zurückgegeben, der nicht null ist.
Swift
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)" } }
Objective-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; } }];
Sie können diese Methode jederzeit verwenden, um auf das Token zuzugreifen, anstatt es zu speichern.
Tokenaktualisierung überwachen
Wenn Sie benachrichtigt werden möchten, wenn das Token aktualisiert wird, geben Sie einen Bevollmächtigten an, der dem Messaging Delegate Protocol entspricht. Im folgenden Beispiel wird der Delegate registriert und die richtige delegate-Methode hinzugefügt:
Swift
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. }
Objective-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. }
Alternativ können Sie auf eine NSNotification
mit dem Namen kFIRMessagingRegistrationTokenRefreshNotification
warten, anstatt eine Delegating-Methode anzugeben. Die Token-Eigenschaft hat immer den aktuellen Tokenwert.
Benachrichtigung senden
Installieren und ausführen Sie die App auf dem Zielgerät. Auf Apple-Geräten müssen Sie die Berechtigungsanfrage für den Empfang von Remote-Benachrichtigungen akzeptieren.
Die App muss auf dem Gerät im Hintergrund ausgeführt werden.
Öffnen Sie in der Firebase Console die Seite Messaging.
Wenn dies Ihre erste Mitteilung ist, wählen Sie Erste Kampagne erstellen aus.
- Wählen Sie Firebase-Benachrichtigungsnachrichten und dann Erstellen aus.
Wählen Sie andernfalls auf dem Tab Kampagnen die Option Neue Kampagne und dann Benachrichtigungen aus.
Geben Sie den Nachrichtentext ein. Alle anderen sind optional.
Wählen Sie im rechten Bereich Testnachricht senden aus.
Geben Sie in das Feld FCM-Registrierungstoken hinzufügen das Registrierungstoken ein, das Sie in einem vorherigen Abschnitt dieser Anleitung erhalten haben.
Wählen Sie Testen aus.
Nachdem Sie Testen ausgewählt haben, sollte das Zielclientgerät (mit der App im Hintergrund) die Benachrichtigung erhalten.
Informationen zur Nachrichtenzustellung an Ihre App finden Sie im FCM-Dashboard für Berichte. Dort werden die Anzahl der auf Apple- und Android-Geräten gesendeten und geöffneten Nachrichten sowie Daten für „Impressionen“ (von Nutzern gesehene Benachrichtigungen) für Android-Apps aufgezeichnet.
Nächste Schritte
Unter den folgenden Links erfahren Sie, wie Sie über Benachrichtigungen hinausgehen und Ihrer Anwendung weitere erweiterte Funktionen hinzufügen: