Mit unseren Firebase C++ SDKs, die eine C++-Schnittstelle für 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 auch viele sprachspezifische Ausdrücke, die von Firebase verwendet werden, in eine für C++-Entwickler vertrautere Schnittstelle.
Weitere Informationen dazu, wie Sie Ihre Spiele mit Firebase optimieren können, finden Sie auf unserer Firebase-Seite für Spiele.
Haben Sie Firebase bereits zu Ihrem C++-Projekt hinzugefügt? Achten Sie darauf, dass Sie die neueste Version des Firebase C++ SDK verwenden.
Vorbereitung
Installieren Sie Ihren bevorzugten Editor oder Ihre bevorzugte IDE, z. B. Android Studio, IntelliJ oder VS Code.
Android SDK herunterladen.
Ihr Projekt muss die folgenden Anforderungen erfüllen:
Die App ist auf API‑Level 21 (Lollipop) oder höher ausgerichtet.
Verwendet Gradle und ist 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 die Google Play-Dienste auf dem Clientgerät erforderlich. Sehen Sie sich 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, um eine Verbindung zu Ihrem C++-Projekt herzustellen. Weitere Informationen zu Firebase-Projekten
Schritt 3: App bei Firebase registrieren
Wenn Sie Firebase in Ihrer Android-App verwenden möchten, müssen Sie Ihre App in Ihrem Firebase-Projekt registrieren. Die Registrierung Ihrer App wird oft auch 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 Symbol Android (
) 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 weitere App-Informationen ein: App-Nickname und SHA-1-Wert des Signaturzertifikats für die Fehlerbehebung.
Klicken Sie auf App registrieren.
Schritt 4: Firebase-Konfigurationsdatei hinzufügen
Klicken Sie auf google-services.json herunterladen, um Ihre Firebase-Android-Konfigurationsdatei zu erhalten.
Öffnen Sie Ihr C++-Projekt in einer IDE und fügen Sie die Konfigurationsdatei dem Projekt hinzu:
Gradle-Builds: Fügen Sie Ihre Konfigurationsdatei in dasselbe Verzeichnis wie Ihre
build.gradle
-Datei der obersten Ebene ein.Andere Build-Systeme: Informationen zum Generieren von Android-String-Ressourcen finden Sie unten unter Benutzerdefinierte Build-Systeme.
(Nur Gradle-Builds) Wenn Sie Firebase-Dienste in Ihrem C++-Projekt aktivieren möchten, fügen Sie das google-services-Plug-in Ihrer
build.gradle
-Datei auf oberster Ebene hinzu.Fügen Sie Regeln hinzu, um das Gradle-Plug-in für Google-Dienste einzuschließen. 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.4.3' // Google Services plugin implementation 'com.google.android.gms:18.7.2' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Wenden Sie das Google-Dienste-Gradle-Plug-in an:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Sie haben die Einrichtungsaufgaben 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.
Laden Sie das Firebase C++ SDK herunter und entpacken Sie es an einem geeigneten Ort.
Das Firebase C++ SDK ist nicht plattformspezifisch, enthält aber plattformspezifische Bibliotheken.
Geben Sie in der Datei
gradle.properties
Ihres Projekts den Speicherort des entzippten SDK an:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Fügen Sie der Datei
settings.gradle
Ihres 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 des Moduls (auf Anwendungsebene, in der Regel
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.txt
Ihres Projekts den folgenden Inhalt hinzu.
Fügen Sie die Bibliotheken für die Firebase-Produkte ein, 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 Ihre 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 den Geräteprotokollen wird die Firebase-Bestätigung angezeigt, dass die Initialisierung abgeschlossen ist. Wenn Sie Ihre App auf einem Emulator mit Netzwerkzugriff ausgeführt haben, werden Sie in der Firebase-Konsole benachrichtigt, dass die Verbindung Ihrer App hergestellt wurde.
Das wars! Ihre C++-App 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)
Hinweis: C++-Bibliotheken für Apple-Plattformen sind in der Version dieser Einrichtungsseite für Apple-Plattformen (iOS+) aufgeführt.
Firebase-Produkt | Bibliotheksreferenzen ( firebaseCpp.dependencies für build.gradle -Datei) |
Bibliotheksreferenzen ( firebase_libs für CMakeLists.txt -Datei) |
---|---|---|
AdMob | admob |
firebase_admob (erforderlich) firebase_analytics (erforderlich) firebase_app
|
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
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links (empfohlen) firebase_analytics (erforderlich) firebase_app
|
Realtime Database | database |
firebase_database (erforderlich) firebase_app
|
Remote Config | remoteConfig |
firebase_remote_config (empfohlen) firebase_analytics (erforderlich) firebase_app
|
Zusätzliche Informationen zur Einrichtung auf Mobilgeräten
NDK-Absturzberichte erhalten
Firebase Crashlytics unterstützt die Absturzberichterstattung für Apps, die native Android-Bibliotheken verwenden. Weitere Informationen finden Sie unter Android NDK-Absturzberichte abrufen.
Benutzerdefinierte Build-Systeme
Firebase stellt das Skript generate_xml_from_google_services_json.py
bereit, um google-services.json
- in .xml
-Ressourcen zu konvertieren, die Sie in Ihr Projekt einfügen können. Dieses Skript wendet dieselbe Transformation an, die das Gradle-Plug-in für Google Play-Dienste beim Erstellen von Android-Anwendungen ausführt.
Wenn Sie nicht mit Gradle entwickeln (z. B. mit ndk-build, Makefiles oder Visual Studio), können Sie dieses Skript verwenden, um die Generierung von Android-String-Ressourcen zu automatisieren.
ProGuard
Viele Android-Build-Systeme verwenden ProGuard für Builds im Release-Modus, um die Größe von Anwendungen zu verringern und Java-Quellcode zu schützen.
Wenn Sie ProGuard verwenden, müssen Sie die Dateien in libs/android/*.pro
, die den Firebase C++-Bibliotheken entsprechen, die Sie in Ihrer ProGuard-Konfiguration verwenden, hinzufügen.
Wenn Sie beispielsweise Gradle verwenden und Google Analytics nutzen, sieht die Datei build.gradle
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 für 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 Google Play-Dienste auf dem Clientgerät nicht verfügbar sind. Sie müssen also aktualisiert oder reaktiviert werden oder die Berechtigungen müssen korrigiert werden. Die Firebase-Bibliothek kann erst verwendet werden, wenn die Situation auf dem Clientgerät behoben wurde.
Mithilfe der 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 für jedes unterstützte Firebase-Produkt aufgeführt, ob Google Play-Dienste auf einem Clientgerät erforderlich sind.
Firebase C++-Bibliothek | Sind Google Play-Dienste auf dem Clientgerät erforderlich? |
---|---|
AdMob | In der Regel nicht 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 |
AdMob und Google Play-Dienste
Die meisten Versionen des Google Mobile Ads SDK für Android können auch ohne Google Play-Dienste auf dem Clientgerät ordnungsgemäß funktionieren. Wenn Sie jedoch die com.google.android.gms:play-services-ads-lite
-Abhängigkeit anstelle der oben aufgeführten Standard-com.google.firebase:firebase-ads
-Abhängigkeit verwenden, sind Google Play-Dienste erforderlich.
Die AdMob-Initialisierung gibt nur kInitResultFailedMissingDependency
zurück, wenn beide der folgenden Bedingungen erfüllt sind:
- Google Play-Dienste sind auf dem Clientgerät nicht verfügbar.
- Sie verwenden
com.google.android.gms:play-services-ads-lite
.
Desktop-Workflow einrichten (Beta)
Wenn Sie ein Spiel entwickeln, ist es oft viel einfacher, es zuerst auf Desktop-Plattformen zu testen und es dann später im Entwicklungszyklus auf Mobilgeräten bereitzustellen und zu testen. Um diesen Workflow zu unterstützen, stellen wir eine Teilmenge der Firebase C++ SDKs bereit, die unter Windows, macOS, Linux und im C++-Editor ausgeführt werden können.
Für Desktop-Workflows müssen Sie Folgendes ausführen:
- C++-Projekt für CMake konfigurieren
- Firebase-Projekt erstellen
- App (iOS oder Android) bei Firebase registrieren
- Firebase-Konfigurationsdatei für mobile Plattformen hinzufügen
Erstellen Sie eine Desktop-Version der Firebase-Konfigurationsdatei:
Wenn Sie die Android-Datei
google-services.json
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 den folgenden Befehl im selben Verzeichnis wie IhreGoogleService-Info.plist
-Datei aus, 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 Firebase-Konsoleneinrichtungs-Workflow eingegeben haben. Weitere Informationen zu Konfigurationsdateien
Fügen Sie Ihrem C++-Projekt Firebase SDKs hinzu.
Die folgenden Schritte sind ein Beispiel dafür, wie Sie ein unterstütztes Firebase-Produkt zu Ihrem C++-Projekt hinzufügen. In diesem Beispiel wird beschrieben, wie Sie Firebase Authentication und Firebase Realtime Database hinzufügen.
Legen Sie die Umgebungsvariable
FIREBASE_CPP_SDK_DIR
auf den Speicherort des entzippten 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++-App aus.
Verfügbare Bibliotheken (Desktop)
Das Firebase C++ SDK bietet Unterstützung für Desktop-Workflows für eine Teilmenge von Funktionen. So können bestimmte Teile von Firebase in eigenständigen Desktop-Builds unter Windows, macOS und Linux verwendet werden.
Firebase-Produkt | Bibliotheksreferenzen (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 verbleibenden Desktop-Bibliotheken als Stub-Implementierungen (nicht funktionsfähig) für Windows, macOS und Linux bereit. Daher müssen Sie keinen Code bedingt kompilieren, um ihn auf dem Desktop auszuführen.
Realtime Database Computer
Das Realtime Database SDK für Desktop verwendet REST für den Zugriff auf Ihre Datenbank. Daher müssen Sie die Indizes deklarieren, die Sie mit Query::OrderByChild()
auf dem Desktop verwenden, da Ihre Listener sonst fehlschlagen.
Zusätzliche Informationen zur Einrichtung auf dem Computer
Windows-Bibliotheken
Unter Windows werden Bibliotheksversionen auf Grundlage der folgenden Informationen bereitgestellt:
- Build-Plattform: 32-Bit- (x86) oder 64-Bit-Modus (x64)
- Windows-Laufzeitumgebung: Multithreaded / MT im Vergleich zu Multithreaded DLL /MD
- Ziel: Release im Vergleich zu Debug
Die folgenden Bibliotheken wurden mit Visual Studio 2015 und 2017 getestet.
Wenn Sie C++-Desktop-Apps unter Windows entwickeln, 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 zur Verfügung gestellt.
Die macOS-Bibliotheken wurden mit Xcode 16.2 getestet.
Wenn Sie C++-Desktop-Apps unter macOS entwickeln, müssen Sie die folgenden Bibliotheken mit Ihrem Projekt verknüpfen:
pthread
-SystembibliothekCoreFoundation
macOS-SystemframeworkFoundation
macOS-SystemframeworkSecurity
macOS-SystemframeworkGSS
macOS-SystemframeworkKerberos
macOS-SystemframeworkSystemConfiguration
macOS-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- (x86_64) Plattformen 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 pthread
-Systembibliothek mit Ihrem Projekt. Weitere Informationen finden Sie in der Dokumentation Ihres Compilers. Wenn Sie GCC 5 oder höher verwenden, definieren Sie -D_GLIBCXX_USE_CXX11_ABI=0
.
Nächste Schritte
Firebase-Beispiel-Apps ansehen
So bereiten Sie die Einführung Ihrer App vor:
- Richten Sie in der Google Cloud Console Budgetbenachrichtigungen für Ihr Projekt ein.
- Behalten Sie das Dashboard für Nutzung und Abrechnung in der Firebase-Konsole im Blick, um einen Überblick über die Nutzung Ihres Projekts in mehreren Firebase-Diensten zu erhalten.
- Sehen Sie sich die Firebase-Start-Checkliste an.