Mit unseren Firebase C++ SDKs, die eine C++-Schnittstelle zusätzlich zu den Firebase SDKs bieten, können Sie Ihre C++-Spiele optimieren.
Sie können vollständig über Ihren C++-Code auf Firebase zugreifen, ohne plattformnativen Code schreiben zu müssen. Das Firebase SDK übersetzt außerdem viele sprachspezifische Redewendungen, die von Firebase verwendet werden, 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 Firebase bereits zu Ihrem C++-Projekt hinzugefügt? Achten Sie darauf, dass Sie die aktuelle Version des Firebase C++ SDK verwenden.
Vorbereitung
Installieren Sie Ihren bevorzugten Editor oder Ihre bevorzugte IDE, z. B. Android Studio, IntelliJ oder VS Code.
Rufen Sie das Android SDK ab.
Ihr Projekt muss die folgenden Anforderungen erfüllen:
Ausrichtung auf API-Level 24 (Nougat) oder höher
Verwendet Gradle und wird mit CMake konfiguriert
Richten Sie ein physisches Gerät ein oder verwenden Sie einen Emulator, um Ihre App auszuführen.
Emulatoren müssen ein Emulator-Image mit Google Play verwenden.
Für einige C++-Bibliotheken sind Google Play-Dienste auf dem Clientgerät erforderlich. Sehen Sie sich dazu die Liste auf dieser Seite an.
Schritt 2: Firebase-Projekt erstellen
Bevor Sie Firebase zu Ihrem C++-Projekt hinzufügen können, müssen Sie ein Firebase-Projekt erstellen, das mit Ihrem C++-Projekt verbunden wird. Weitere Informationen zu Firebase-Projekten finden Sie unter Firebase-Projekte.
Schritt 3: App bei Firebase registrieren
Wenn Sie Firebase in Ihrer Android-App verwenden möchten, müssen Sie die App in Ihrem Firebase-Projekt registrieren. Die Registrierung Ihrer App wird oft als „Hinzufügen“ Ihrer App zu Ihrem Projekt bezeichnet.
Rufen Sie die Firebase-Konsole auf.
Klicken Sie in der Mitte der Projektübersicht auf das Android-Symbol () oder auf App hinzufügen, um den Einrichtungsworkflow zu starten.
Geben Sie den Paketnamen Ihrer App in das Feld Android-Paketname ein.
(Optional) Geben Sie einen App-Alias ein. Dies ist eine interne, praktische Kennung, die nur für Sie in der Firebase-Konsole sichtbar ist.
Klicken Sie auf App registrieren.
Schritt 4: Firebase-Konfigurationsdatei hinzufügen
Klicken Sie auf google-services.json herunterladen, um die Firebase-Konfigurationsdatei für Android abzurufen.
Öffnen Sie Ihr C++-Projekt in einer IDE und fügen Sie die Konfigurationsdatei Ihrem Projekt hinzu:
Gradle-Builds: Fügen Sie die Konfigurationsdatei im selben Verzeichnis wie die
build.gradle-Datei auf oberster Ebene hinzu.Andere Build-Systeme: Informationen zum Generieren von Android-String-Ressourcen finden Sie unten im Abschnitt Benutzerdefinierte Build-Systeme.
(Nur Gradle-Builds) Wenn Sie Firebase-Dienste in Ihrem C++-Projekt aktivieren möchten, fügen Sie das Gradle-Plug-in für Google-Dienste der
build.gradle-Datei auf oberster Ebene hinzu.Fügen Sie Regeln hinzu, um das Gradle-Plug-in für Google-Dienste einzubinden. Prüfen Sie, ob Sie auch das Maven-Repository von Google haben.
buildscript { repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository } dependencies { // ... // Add the following lines: classpath 'com.google.gms:google-services:4.5.0' // Google services Gradle plugin implementation 'com.google.android.gms:18.11.1' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }Wenden Sie das Gradle-Plug-in für Google-Dienste an:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google services Gradle plugin android { // ... }
Sie haben die Einrichtungsaufgaben in der Firebase-Konsole abgeschlossen. Fahren Sie unten mit Firebase C++ SDKs hinzufügen 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.
Laden Sie das Firebase C++ SDK herunter und entpacken Sie es an einem für Sie günstigen Ort.
Das C++ SDK von Firebase ist nicht plattformspezifisch, enthält aber plattformspezifische Bibliotheken.
Geben Sie in der
gradle.properties-Datei Ihres Projekts den Speicherort des entpackten SDK an:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Fügen Sie der Datei
settings.gradleIhres Projekts den folgenden Inhalt hinzu:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
Fügen Sie der Gradle-Datei Ihres Moduls (auf App-Ebene, normalerweise
app/build.gradle) den folgenden Inhalt hinzu.
Fügen Sie die Bibliotheksabhängigkeiten für die Firebase-Produkte hinzu, die Sie in Ihrer App verwenden möchten.Analytics aktiviert
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { analytics auth database }
Analytics nicht aktiviert
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { auth database }
Fügen Sie der Datei
CMakeLists.txtIhres Projekts den folgenden Inhalt hinzu.
Fügen Sie die Bibliotheken für die Firebase-Produkte hinzu, die Sie in Ihrer App verwenden möchten.Analytics aktiviert
# 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 Analytics, Firebase Authentication, and Firebase Realtime Database set(firebase_libs firebase_analytics firebase_auth firebase_database firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
Analytics nicht aktiviert
# 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}")
Synchronisieren Sie die App, damit für alle Abhängigkeiten die erforderlichen Versionen vorliegen.
Wenn Sie Analytics hinzugefügt haben, führen Sie Ihre App aus, um eine Bestätigung an Firebase zu senden, dass Sie Firebase erfolgreich eingebunden haben. Andernfalls können Sie den Bestätigungsschritt überspringen.
In Ihren Geräteprotokollen wird die Firebase-Bestätigung angezeigt, dass die Initialisierung abgeschlossen ist. Wenn Sie Ihre App in einem Emulator mit Netzwerkzugriff ausgeführt haben, werden Sie in der Firebase-Console darüber informiert, dass die Verbindung Ihrer App hergestellt wurde.
Fertig! Ihre C++-Anwendung ist registriert und für die Verwendung von Firebase-Diensten konfiguriert.
Verfügbare Bibliotheken
Weitere Informationen zu den C++-Firebase-Bibliotheken finden Sie in der Referenzdokumentation und in unserem Open-Source-SDK-Release auf GitHub.
Verfügbare Bibliotheken für Android (mit CMake)
C++-Bibliotheken für Apple-Plattformen sind auf der Version dieser Einrichtungsseite für Apple-Plattformen (iOS+) aufgeführt.
| Firebase-Produkt | Bibliotheksreferenzen ( firebaseCpp.dependenciesfür build.gradle-Datei) |
Bibliotheksreferenzen ( firebase_libsfür CMakeLists.txt-Datei) |
|---|---|---|
| Analytics | analytics |
firebase_analytics(erforderlich) firebase_app
|
| App Check | appCheck |
firebase_app_check(erforderlich) firebase_app
|
| Authentication | auth |
firebase_auth(erforderlich) firebase_app
|
| Cloud Firestore | firestore |
firebase_firestore(erforderlich) firebase_auth(erforderlich) firebase_app
|
| Cloud Functions | functions |
firebase_functions(erforderlich) firebase_app
|
| Cloud Messaging | messaging |
firebase_messaging(empfohlen) firebase_analytics(erforderlich) firebase_app
|
| Cloud Storage | storage |
firebase_storage(erforderlich) firebase_app
|
| Realtime Database | database |
firebase_database(erforderlich) firebase_app
|
| Remote Config | remoteConfig |
firebase_remote_config(empfohlen) firebase_analytics(erforderlich) firebase_app
|
| VERWORFENE ODER NICHT UNTERSTÜTZTE BIBLIOTHEKEN | ||
| Dynamic Links | dynamicLinks |
firebase_dynamic_links(empfohlen) firebase_analytics(erforderlich) firebase_app
|
Zusätzliche Informationen zur Einrichtung auf Mobilgeräten
NDK-Absturzberichte abrufen
Firebase Crashlytics unterstützt Absturzberichte für Apps, die native Android-Bibliotheken verwenden. Weitere Informationen finden Sie unter Android NDK-Absturzberichte abrufen.
Benutzerdefinierte Build-Systeme
Firebase stellt das Script generate_xml_from_google_services_json.py bereit, um google-services.json-Ressourcen in .xml-Ressourcen zu konvertieren, die Sie in Ihr Projekt einbinden können. Dieses Script wendet dieselbe Transformation an, die das Gradle-Plug-in für Google Play-Dienste beim Erstellen von Android-Apps ausführt.
Wenn Sie nicht mit Gradle erstellen (z. B. ndk-build, Makefiles, Visual Studio usw.), können Sie dieses Script verwenden, um die Generierung von Android-String-Ressourcen zu automatisieren.
ProGuard
Viele Android-Build-Systeme verwenden ProGuard für Builds im Releasemodus, um die Größe der Anwendung zu reduzieren und den Java-Quellcode zu schützen.
Wenn Sie ProGuard verwenden, müssen Sie die Dateien in libs/android/*.pro, die den von Ihnen verwendeten Firebase C++-Bibliotheken entsprechen, Ihrer ProGuard-Konfiguration hinzufügen.
Wenn Sie beispielsweise Gradle mit Google Analytics verwenden, sieht Ihre build.gradle-Datei so aus:
android { // ... buildTypes { release { minifyEnabled true proguardFile getDefaultProguardFile('your-project-proguard-config.txt') proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro") proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro") // ... and so on, for each Firebase C++ library that you're using } } }
Anforderung an Google Play-Dienste
Für die meisten Firebase-C++-Bibliotheken müssen die Google Play-Dienste auf dem Android-Gerät des Clients installiert sein. Wenn eine Firebase C++-Bibliothek bei der Initialisierung kInitResultFailedMissingDependency zurückgibt, bedeutet das, dass die Google Play-Dienste auf dem Clientgerät nicht verfügbar sind. Sie müssen also aktualisiert oder reaktiviert werden, Berechtigungen müssen korrigiert werden usw. Die Firebase-Bibliothek kann erst verwendet werden, wenn das Problem auf dem Clientgerät behoben wurde.
Mit den Funktionen in google_play_services/availability.h können Sie herausfinden, warum die Google Play-Dienste auf dem Clientgerät nicht verfügbar sind, und versuchen, das Problem zu beheben.
In der folgenden Tabelle ist aufgeführt, ob Google Play-Dienste auf einem Clientgerät für die einzelnen unterstützten Firebase-Produkte erforderlich sind.
| Firebase C++-Bibliothek | Sind Google Play-Dienste auf dem Clientgerät erforderlich? |
|---|---|
| Analytics | Nicht erforderlich |
| Authentication | Erforderlich |
| Cloud Firestore | Erforderlich |
| Cloud Functions | Erforderlich |
| Cloud Messaging | Erforderlich |
| Cloud Storage | Erforderlich |
| Dynamic Links | Erforderlich |
| Realtime Database | Erforderlich |
| Remote Config | Erforderlich |
Desktop-Workflow einrichten (Beta)
Wenn Sie ein Spiel erstellen, ist es oft viel einfacher, es zuerst auf Desktop-Plattformen zu testen und dann später in der Entwicklung auf Mobilgeräten bereitzustellen und zu testen. Zur Unterstützung dieses Workflows bieten wir eine Teilmenge der Firebase C++ SDKs an, die unter Windows, macOS, Linux und im C++-Editor ausgeführt werden können.
Für Desktop-Workflows müssen Sie Folgendes tun:
- 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-Datei
google-services.jsonhinzugefügt haben: Wenn Sie Ihre App ausführen, sucht Firebase nach dieser mobilen Datei und generiert dann automatisch eine Firebase-Konfigurationsdatei für Computer (google-services-desktop.json).Wenn Sie die iOS-Datei
GoogleService-Info.plisthinzugefügt haben: Bevor Sie Ihre App ausführen, müssen Sie diese mobile Datei in eine Desktop-Firebase-Konfigurationsdatei konvertieren. Führen Sie den folgenden Befehl im selben Verzeichnis wie die DateiGoogleService-Info.plistaus, um die Datei zu konvertieren: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.
Fügen Sie Ihrem C++-Projekt Firebase SDKs hinzu.
Die folgenden Schritte dienen als Beispiel dafür, wie Sie Ihrem C++-Projekt ein beliebiges unterstütztes Firebase-Produkt hinzufügen können. In diesem Beispiel fügen wir Firebase Authentication und Firebase Realtime Database hinzu.
Legen Sie die Umgebungsvariable
FIREBASE_CPP_SDK_DIRauf den Speicherort des entpackten Firebase C++ SDK fest.Fügen Sie der Datei
CMakeLists.txtIhres Projekts den folgenden Inhalt hinzu, einschließlich der Bibliotheken für die Firebase-Produkte, die Sie verwenden möchten. Beispiel für die Verwendung von 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 Teilmenge von Funktionen, sodass bestimmte Teile von Firebase in eigenständigen Desktop-Builds unter Windows, macOS und Linux verwendet werden können.
| Firebase-Produkt | Bibliotheksreferenzen (mit CMake) |
|---|---|
| App Check |
firebase_app_check(erforderlich) firebase_app
|
| Authentication |
firebase_auth(erforderlich) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_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
|
Die restlichen Desktop-Bibliotheken werden von Firebase als Stub-Implementierungen (nicht funktionsfähig) bereitgestellt, um die Entwicklung für Windows, macOS und Linux zu vereinfachen. Daher müssen Sie keinen Code bedingt kompilieren, um die Desktop-Version zu unterstützen.
Realtime Database-Desktopcomputer
Das Realtime Database SDK für Computer verwendet REST, um auf Ihre Datenbank zuzugreifen. Daher müssen Sie die Indexe deklarieren, die Sie mit Query::OrderByChild() auf dem Computer verwenden. Andernfalls schlagen Ihre Listener fehl.
Zusätzliche Informationen zur Einrichtung auf dem Computer
Windows-Bibliotheken
Für Windows werden Bibliotheksversionen basierend auf Folgendem bereitgestellt:
- Build-Plattform: 32-Bit-Modus (x86) oder 64-Bit-Modus (x64)
- Windows-Laufzeitumgebung: Multithreaded / MT im Vergleich zu Multithreaded DLL /MD
- Ziel: Release oder Debug
Die folgenden Bibliotheken wurden mit Visual Studio 2015 und 2017 getestet.
Wenn Sie C++-Desktop-Apps unter Windows erstellen, verknüpfen Sie die folgenden Windows SDK-Bibliotheken mit Ihrem Projekt. Weitere Informationen finden Sie in der Dokumentation Ihres Compilers.
| 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. Frameworks werden ebenfalls bereitgestellt.
Die macOS-Bibliotheken wurden mit Xcode 26.2 getestet.
Wenn Sie C++-Desktop-Apps unter macOS erstellen, verknüpfen Sie Folgendes mit Ihrem Projekt:
pthreadSystembibliothekCoreFoundationmacOS-SystemframeworkFoundationmacOS-SystemframeworkSecuritymacOS-SystemframeworkGSSmacOS-SystemframeworkKerberosmacOS-SystemframeworkSystemConfigurationmacOS-Systemframework
Weitere Informationen finden Sie in der Dokumentation Ihres Compilers.
Linux-Bibliotheken
Für 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 unter Ubuntu getestet.
Wenn Sie C++-Desktop-Apps unter Linux erstellen, verknüpfen Sie die Systembibliothek pthread mit Ihrem Projekt. Weitere Informationen finden Sie in der Dokumentation Ihres Compilers. Wenn Sie mit GCC 5 oder höher entwickeln, definieren Sie -D_GLIBCXX_USE_CXX11_ABI=0.
Nächste Schritte
Firebase-Beispiel-Apps ansehen
Open-Source-SDK in GitHub ansehen
Bereiten Sie die Veröffentlichung Ihrer App vor:
- Richten Sie in der Google Cloud-Konsole Budgetbenachrichtigungen für Ihr Projekt ein.
- Im Dashboard „Nutzung und Abrechnung“ in der Firebase-Konsole können Sie sich einen Überblick über die Nutzung Ihres Projekts in mehreren Firebase-Diensten verschaffen.
- Sehen Sie sich die Checkliste für die Einführung von Firebase an.