Mit unseren Firebase C++ SDKs können Sie Ihre C++-Spiele optimieren. Sie bieten eine C++-Schnittstelle, die auf den Firebase SDKs basiert.
Sie können vollständig über Ihren C++-Code auf Firebase zugreifen, ohne platformspezifischen Code schreiben zu müssen. Das Firebase SDK übersetzt auch viele von Firebase verwendete sprachspezifische Begriffe in eine Oberfläche, die C++-Entwicklern vertrauter ist.
Weitere Informationen dazu, wie Sie Ihre Spiele mit Firebase optimieren können, finden Sie auf der Firebase-Seite für Spiele.
Haben Sie Ihrem C++-Projekt bereits Firebase hinzugefügt? Sie benötigen die neueste Version des Firebase C++ SDK.
Vorbereitung
Installieren Sie Folgendes:
- Xcode 13.3.1 oder höher
- CocoaPods 1.12.0 oder höher
Ihr Projekt muss auf die folgenden oder höheren Plattformversionen ausgerichtet sein:
- iOS 13
- tvOS 13
Richten Sie ein physisches Gerät ein oder verwenden Sie den Simulator, um Ihre App auszuführen.
Schritt 2: Firebase-Projekt erstellen
Bevor Sie Firebase zu Ihrem C++-Projekt hinzufügen können, müssen Sie ein Firebase-Projekt erstellen, um eine Verbindung zu Ihrem C++-Projekt herzustellen. Weitere Informationen zu Firebase-Projekten finden Sie unter Firebase-Projekte verstehen.
Schritt 3: App bei Firebase registrieren
Wenn Sie Firebase in Ihrer Apple-App verwenden möchten, müssen Sie Ihre App in 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.
Schritt 4: Firebase-Konfigurationsdatei hinzufügen
Klicken Sie auf GoogleService-Info.plist herunterladen, um die Konfigurationsdatei für Firebase-Apple-Plattformen abzurufen.
Öffnen Sie Ihr C++-Projekt in einer IDE und ziehen Sie die Konfigurationsdatei in den Stammordner Ihres C++-Projekts.
Wenn Sie dazu aufgefordert werden, wählen Sie aus, dass die Konfigurationsdatei allen Zielen hinzugefügt werden soll.
Sie haben die Einrichtung der Aufgaben in der Firebase-Konsole abgeschlossen. Fahren Sie mit Firebase C++ SDKs hinzufügen unten fort.
Schritt 5: Firebase C++ SDKs hinzufügen
Die Schritte in diesem Abschnitt sind ein Beispiel dafür, wie Sie Ihrem Firebase-C++-Projekt unterstützte Firebase-Produkte hinzufügen.
Lade das Firebase C++ SDK herunter und entpacke es an einem geeigneten Ort.
Das Firebase C++ SDK ist nicht plattformspezifisch, enthält aber plattformspezifische Bibliotheken.
Fügen Sie Firebase-Pods aus dem entpackten SDK hinzu.
Erstellen Sie eine Podfile-Datei, falls Sie noch keine haben:
cd your-app-directory
pod init
Fügen Sie Ihrem Podfile die Firebase-Pods hinzu, die Sie in Ihrer App verwenden möchten.
Analytics aktiviert
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'Analytics nicht aktiviert
# Add the pods for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'
Installieren Sie die Pods und öffnen Sie dann die Datei
.xcworkspace
in Xcode.pod install
open your-app.xcworkspace
Fügen Sie Firebase-Frameworks aus dem entpackten SDK hinzu.
Die einfachste Methode zum Hinzufügen dieser Frameworks besteht darin, sie aus einem
Finder
-Fenster direkt in den Bereich Project Navigator (Projektnavigator) von Xcode zu ziehen. Das ist standardmäßig der linke Bereich. Sie können auch auf das Dateisymbol oben links in Xcode klicken.Fügen Sie das Firebase C++-Framework
firebase.framework
hinzu, das erforderlich ist, um Firebase-Produkte zu verwenden.Fügen Sie das Framework für jedes Firebase-Produkt hinzu, das Sie verwenden möchten. Wenn Sie beispielsweise Firebase Authentication verwenden möchten, fügen Sie
firebase_auth.framework
hinzu.
Klicken Sie in der Firebase-Konsole im Einrichtungsworkflow auf Weiter.
Wenn Sie Analytics hinzugefügt haben, führen Sie Ihre App aus, um Firebase zu bestätigen, dass Sie Firebase erfolgreich eingebunden haben. Andernfalls können Sie diesen Schritt überspringen.
In den Geräteprotokollen wird die Firebase-Überprüfung angezeigt, ob die Initialisierung abgeschlossen ist. Wenn Sie Ihre App auf einem Emulator mit Netzwerkzugriff ausgeführt haben, werden Sie in der Firebase Console darüber informiert, dass die App-Verbindung hergestellt wurde.
Fertig! Ihre C++-App ist registriert und für die Verwendung von Firebase-Produkten konfiguriert.
Verfügbare Bibliotheken
Weitere Informationen zu den C++-Firebase-Bibliotheken finden Sie in der Referenzdokumentation und in der Open-Source-SDK-Version auf GitHub.
Verfügbare Bibliotheken für Apple-Plattformen
C++-Bibliotheken für Android sind auf der Android-Version dieser Einrichtungsseite aufgeführt.
Jedes Firebase-Produkt hat unterschiedliche Abhängigkeiten. Fügen Sie Ihrer Podfile- und C++-Projekt alle aufgeführten Abhängigkeiten für das gewünschte Firebase-Produkt hinzu.
Jedes Firebase-Produkt unterstützt möglicherweise nur eine Auswahl von Apple-Betriebssystemen (z. B. iOS oder tvOS). Informationen dazu, welche Plattformen von den einzelnen Bibliotheken unterstützt werden, finden Sie unter Weitere Informationen zu C++ und Firebase.
Firebase-Produkt | Frameworks und Pods |
---|---|
AdMob |
(erforderlich) firebase.framework firebase_admob.framework (erforderlich) firebase_analytics.framework pod 'FirebaseAdMob', '11.4.2' (erforderlich) pod 'FirebaseAnalytics', '11.4.2'
|
Analytics |
(erforderlich) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '11.4.2'
|
App Check |
(erforderlich) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '11.4.2'
|
Authentication |
(erforderlich) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '11.4.2'
|
Cloud Firestore |
(erforderlich) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '11.4.2' pod 'FirebaseAuth', '11.4.2'
|
Cloud Functions |
(erforderlich) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '11.4.2'
|
Cloud Messaging |
(erforderlich) firebase.framework firebase_messaging.framework (empfohlen) firebase_analytics.framework pod 'FirebaseMessaging', '11.4.2' (empfohlen) pod 'FirebaseAnalytics', '11.4.2'
|
Cloud Storage |
(erforderlich) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '11.4.2'
|
Dynamic Links |
(erforderlich) firebase.framework firebase_dynamic_links.framework (empfohlen) firebase_analytics.framework pod 'FirebaseDynamicLinks', '11.4.2' (empfohlen) pod 'FirebaseAnalytics', '11.4.2'
|
Realtime Database |
(erforderlich) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '11.4.2'
|
Remote Config |
(erforderlich) firebase.framework firebase_remote_config.framework (empfohlen) firebase_analytics.framework pod 'FirebaseRemoteConfig', '11.4.2' (empfohlen) pod 'FirebaseAnalytics', '11.4.2'
|
Zusätzliche Informationen zur Einrichtung auf Mobilgeräten
Method Swizzling
Unter iOS müssen für einige Anwendungsereignisse (z. B. das Öffnen von URLs und das Empfangen von Benachrichtigungen) bestimmte Methoden in Ihrem Anwendungsdelegierten implementiert werden. Für den Empfang einer Benachrichtigung kann es beispielsweise erforderlich sein, dass der Anwendungsdelegierte application:didReceiveRemoteNotification:
implementiert. Da jede iOS-Anwendung einen eigenen App-Delegate hat, verwendet Firebase das Method-Swizzling, mit dem eine Methode durch eine andere ersetzt werden kann, um eigene Handler zusätzlich zu den von Ihnen implementierten anzuhängen.
Die Dynamic Links- und Cloud Messaging-Bibliotheken müssen dem Anwendungsdelegierten mithilfe von Method Wrapping Handler zuordnen. Wenn Sie eines dieser Firebase-Produkte verwenden, identifiziert Firebase beim Laden Ihre AppDelegate
-Klasse und ordnet ihr die erforderlichen Methoden zu. Dabei wird ein Callback an die vorhandene Methodenimplementierung angehängt.
Desktop-Workflow einrichten (Beta)
Wenn Sie ein Spiel erstellen, ist es oft viel einfacher, es zuerst auf Desktop-Plattformen zu testen und später in der Entwicklung auf Mobilgeräten bereitzustellen und zu testen. Zur Unterstützung dieses Workflows stellen wir einen Teil der Firebase C++ SDKs bereit, die unter Windows, macOS, Linux und im C++-Editor ausgeführt werden können.
Führen Sie für Desktop-Workflows folgende Schritte aus:
- Konfigurieren Sie Ihr C++-Projekt für CMake.
- Firebase-Projekt erstellen
- App (iOS oder Android) bei Firebase registrieren
- Firebase-Konfigurationsdatei für eine mobile Plattform hinzufügen
Erstellen Sie eine Desktopversion der Firebase-Konfigurationsdatei:
Wenn Sie die Android-
google-services.json
-Datei hinzugefügt haben: Wenn Sie Ihre App ausführen, sucht Firebase nach dieser mobilen Datei und generiert dann automatisch eine Desktop- Firebase-Konfigurationsdatei (google-services-desktop.json
).Wenn Sie die iOS-Datei
GoogleService-Info.plist
hinzugefügt haben: Bevor Sie Ihre App ausführen, müssen Sie diese mobile Datei in eine Desktop- Firebase-Konfigurationsdatei konvertieren. Führen Sie zum Konvertieren der Datei den folgenden Befehl in demselben Verzeichnis wie dieGoogleService-Info.plist
-Datei aus:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Diese Desktop-Konfigurationsdatei enthält die C++-Projekt-ID, die Sie im Workflow zur Einrichtung der Firebase-Konsole eingegeben haben. Weitere Informationen zu Konfigurationsdateien finden Sie unter Firebase-Projekte kennenlernen.
Fügen Sie Ihrem C++-Projekt Firebase SDKs hinzu.
Die folgenden Schritte dienen als Beispiel dafür, wie Sie ein unterstütztes Firebase-Produkt in Ihr C++-Projekt aufnehmen können. In diesem Beispiel fügen wir Firebase Authentication und Firebase Realtime Database hinzu.
Legen Sie die Umgebungsvariable
FIREBASE_CPP_SDK_DIR
auf den Speicherort des entpackten Firebase C++ SDK fest.Fügen Sie der Datei
CMakeLists.txt
Ihres Projekts den folgenden Inhalt hinzu, einschließlich der Bibliotheken für die Firebase-Produkte, die Sie verwenden möchten. So verwenden Sie beispielsweise Firebase Authentication und Firebase Realtime Database:# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. # Add the Firebase SDKs for the products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database set(firebase_libs firebase_auth firebase_database firebase_app) target_link_libraries(${target_name} "${firebase_libs}")
Führen Sie Ihre C++-Anwendung aus.
Verfügbare Bibliotheken (Desktop)
Das Firebase C++ SDK bietet Unterstützung für Desktop-Workflows für eine Reihe von Funktionen, sodass bestimmte Teile von Firebase in eigenständigen Desktop-Builds unter Windows, macOS und Linux verwendet werden können.
Firebase-Produkt | Bibliotheksverweise (mit CMake) |
---|---|
App Check |
firebase_app_check (erforderlich) firebase_app
|
Authentication |
firebase_auth (erforderlich) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions (erforderlich) firebase_app
|
Cloud Storage |
firebase_storage (erforderlich) firebase_app
|
Realtime Database |
firebase_database (erforderlich) firebase_app
|
Remote Config |
firebase_remote_config (erforderlich) firebase_app
|
Firebase stellt die übrigen Desktopbibliotheken als Stub-Implementierungen (nicht funktionsfähig) bereit, um die Entwicklung für Windows, macOS und Linux zu vereinfachen. Daher müssen Sie Code nicht bedingt kompilieren, um ihn auf den Desktop auszurichten.
Realtime Database Computer
Das Realtime Database SDK für Computer verwendet REST, um auf Ihre Datenbank zuzugreifen. Sie müssen also die Indexe deklarieren, die Sie mit Query::OrderByChild()
auf dem Computer verwenden, da Ihre Listener sonst fehlschlagen.
Zusätzliche Informationen zur Einrichtung auf dem Computer
Windows-Bibliotheken
Für Windows werden Bibliotheksversionen basierend auf folgenden Kriterien bereitgestellt:
- Build-Plattform: 32-Bit-Modus (x86) vs. 64-Bit-Modus (x64)
- Windows-Laufzeitumgebung: Multithreaded / MT vs. Multithreaded DLL /MD
- Ziel: Release-Version oder Debug-Version
Die folgenden Bibliotheken wurden mit Visual Studio 2015 und 2017 getestet.
Wenn Sie C++-Desktopanwendungen unter Windows erstellen, verknüpfen Sie die folgenden Windows SDK-Bibliotheken mit Ihrem Projekt. Weitere Informationen finden Sie in der Compilerdokumentation.
Firebase C++-Bibliothek | Windows SDK-Bibliotheksabhängigkeiten |
---|---|
App Check | advapi32, ws2_32, crypt32 |
Authentication | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Cloud Functions | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Cloud Storage | advapi32, ws2_32, crypt32 |
Realtime Database | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Remote Config | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
macOS-Bibliotheken
Für macOS (Darwin) werden Bibliotheksversionen für die 64-Bit-Plattform (x86_64) bereitgestellt. Außerdem werden Frameworks bereitgestellt.
Die macOS-Bibliotheken wurden mit Xcode 13.3.1 getestet.
Wenn Sie C++ Desktop-Apps unter macOS erstellen, verknüpfen Sie Folgendes mit Ihrem Projekt:
pthread
-SystembibliothekCoreFoundation
macOS-System-FrameworkFoundation
macOS-SystemframeworkSecurity
macOS-SystemframeworkGSS
macOS-System-FrameworkKerberos
macOS-SystemframeworkSystemConfiguration
macOS-Systemframework
Weitere Informationen finden Sie in der Compilerdokumentation.
Linux-Bibliotheken
Unter Linux werden Bibliotheksversionen für 32-Bit- (i386) und 64-Bit-Plattformen (x86_64) bereitgestellt.
Die Linux-Bibliotheken wurden mit GCC 4.8.0, GCC 7.2.0 und Clang 5.0 auf Ubuntu getestet.
Wenn Sie C++-Desktopanwendungen unter Linux erstellen, verknüpfen Sie die pthread
-Systembibliothek mit Ihrem Projekt. Weitere Informationen finden Sie in der Compiler-Dokumentation. Wenn Sie Anwendungen mit GCC 5 oder höher erstellen, definieren Sie -D_GLIBCXX_USE_CXX11_ABI=0
.
Nächste Schritte
Firebase-Beispiel-Apps ansehen
Einführung Ihrer App vorbereiten:
- Richten Sie in der Google Cloud Console Budgetbenachrichtigungen für Ihr Projekt ein.
- Über das Dashboard „Nutzung und Abrechnung“ in der Firebase-Konsole erhalten Sie einen Überblick über die Nutzung Ihres Projekts in mehreren Firebase-Diensten.
- Sehen Sie sich die Checkliste für die Einführung von Firebase an.