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 Ihren bevorzugten Editor oder Ihre bevorzugte IDE, z. B. Android Studio, IntelliJ oder VS Code.
Laden Sie das Android SDK herunter.
Ihr Projekt muss die folgenden Anforderungen erfüllen:
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. Weitere Informationen finden Sie in der Liste auf dieser Seite.
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.
Firebase-Projekt erstellen
-
Klicken Sie in der Firebase Console auf Projekt hinzufügen.
-
Wenn Sie einem vorhandenen Google Cloud-Projekt Firebase-Ressourcen hinzufügen möchten, geben Sie den Projektnamen ein oder wählen Sie ihn aus dem Drop-down-Menü aus.
-
Geben Sie den gewünschten Projektnamen ein, um ein neues Projekt zu erstellen. Optional können Sie auch die Projekt-ID bearbeiten, die unter dem Projektnamen angezeigt wird.
-
-
Lesen Sie sich die Firebase-Nutzungsbedingungen durch und akzeptieren Sie sie.
-
Klicken Sie auf Weiter.
-
Optional: Richten Sie Google Analytics für Ihr Projekt ein, damit Sie die folgenden Firebase-Produkte optimal nutzen können:
Wählen Sie entweder ein vorhandenes Google Analytics-Konto aus oder erstellen Sie ein neues Konto.
Wenn Sie ein neues Konto erstellen, wählen Sie Ihren AnalyticsSpeicherort für Berichte aus und akzeptieren Sie die Datenfreigabeeinstellungen und Google Analytics-Nutzungsbedingungen für Ihr Projekt.
-
Klicken Sie auf Projekt erstellen (oder auf Firebase hinzufügen, wenn Sie ein vorhandenes Google Cloud-Projekt verwenden).
Firebase stellt automatisch Ressourcen für Ihr Firebase-Projekt bereit. Nach Abschluss des Vorgangs werden Sie zur Übersichtsseite für Ihr Firebase-Projekt in der Firebase Console weitergeleitet.
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 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 Android (
) oder App hinzufügen, um den Einrichtungsworkflow zu starten.Geben Sie den Paketnamen Ihrer App in das Feld Android-Paketname ein.
Was ist ein Paketname und wo finde ich ihn?
Anhand des Paketnamens wird Ihre App auf dem Gerät und im Google Play Store eindeutig identifiziert.
Ein Paketname wird oft als Anwendungs-ID bezeichnet.
Suchen Sie in der Gradle-Datei des Moduls (auf App-Ebene, in der Regel
app/build.gradle
) nach dem Paketnamen Ihrer App. Beispiel für einen Paketnamen:com.yourcompany.yourproject
.Beachten Sie, dass der Paketname bei Groß- und Kleinschreibung unterscheidet und für diese Firebase-Android-App nicht mehr geändert werden kann, nachdem sie in Ihrem Firebase-Projekt registriert wurde.
Optional: Geben Sie weitere App-Informationen ein: App-Alias und SHA-1-Wert des Signaturzertifikats für die Fehlerbehebung.
Wie werden der App-Spitzname und das SHA-1-Signaturzertifikat für die Fehlerbehebung in Firebase verwendet?
App-Alias: Eine interne, praktische Kennung, die nur in der Firebase-Konsole angezeigt wird
SHA-1-Wert des Signaturzertifikats für die Fehlerbehebung: Für Firebase Authentication (bei Verwendung von Google Sign In oder Anmeldung per Telefonnummer) und Firebase Dynamic Links ist ein SHA-1-Hash erforderlich.
Klicken Sie auf App registrieren.
Schritt 4: Firebase-Konfigurationsdatei hinzufügen
Klicken Sie auf google-services.json herunterladen, um die Firebase-Android-Konfigurationsdatei abzurufen.
Was muss ich über diese Konfigurationsdatei wissen?
Die Firebase-Konfigurationsdatei enthält eindeutige, aber nicht verborgene Kennungen für Ihr Projekt. Weitere Informationen zu dieser Konfigurationsdatei finden Sie unter Firebase-Projekte.
Sie können Ihre Firebase-Konfigurationsdatei jederzeit wieder herunterladen.
Achten Sie darauf, dass der Name der Konfigurationsdatei keine zusätzlichen Zeichen wie z. B.
(2)
enthält.
Öffnen Sie Ihr C++-Projekt in einer IDE und fügen Sie dem Projekt die Konfigurationsdatei hinzu:
Gradle-Builds: Fügen Sie die Konfigurationsdatei demselben Verzeichnis wie die
build.gradle
-Datei der obersten Ebene hinzu.Andere Build-Systeme: Weitere Informationen zum Generieren von Android-Stringressourcen finden Sie unten unter Benutzerdefinierte Build-Systeme.
(Nur Gradle-Builds) Wenn Sie Firebase-Dienste in Ihrem C++-Projekt aktivieren möchten, fügen Sie der
build.gradle
-Datei auf oberster Ebene das google-services-Plug-in hinzu.Fügen Sie Regeln hinzu, um das Gradle-Plug-in für Google-Dienste einzubinden. Prüfen Sie auch, ob das Maven-Repository von Google vorhanden ist.
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.2' // Google Services plugin implementation 'com.google.android.gms:18.5.0' } } 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 plugin android { // ... }
Die Einrichtungsaufgaben in der Firebase-Konsole sind abgeschlossen. Fahren Sie 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.
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.
Geben Sie in der
gradle.properties
-Datei Ihres Projekts den Speicherort des entpackten SDKs 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.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 }
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 hinzu, die Sie in Ihrer App verwenden möchten.# 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}")
# 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 Firebase zu bestätigen, 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 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-Diensten konfiguriert.
(optionale Alternative) SDKs mit ndk-build hinzufügen
- Sie benötigen das Android NDK in Version 10d oder höher.
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.
-
Öffnen Sie die Datei
local.properties
und gehen Sie so vor:- Legen Sie die Variable
firebase_cpp_sdk.dir
auf den Speicherort des entpackten Firebase C++ SDK fest. - Legen Sie die Variable
ndk.dir
auf den Speicherort des Android-NDK fest.
- Legen Sie die Variable
-
Wenn Sie die integrierte ndkBuild-Unterstützung von Gradle verwenden möchten, erstellen Sie im Verzeichnis der obersten Ebene ein Verzeichnis
jni
und dann die folgendenmake
-Dateien.-
Erstellen Sie eine
jni/Application.mk
-Datei mit folgendem Inhalt:APP_PLATFORM:=android-14 NDK_TOOLCHAIN_VERSION=clang APP_ABI:=armeabi-v7a arm64-v8a x86 x86_64 APP_STL:=c++_static APP_MODULES:=android_main APP_CPPFLAGS+=-std=c++11
-
Erstellen Sie eine
jni/Android.mk
-Datei mit folgendem Inhalt:Fügen Sie die Bibliotheken des Firebase-Produkts hinzu, das Sie verwenden möchten. So verwenden Sie beispielsweise Analytics:
LOCAL_PATH:=$(call my-dir)/.. ifeq ($(FIREBASE_CPP_SDK_DIR),) $(error FIREBASE_CPP_SDK_DIR must specify the Firebase package location.) endif # With Firebase libraries for the selected build configuration (ABI + STL) STL:=$(firstword $(subst _, ,$(APP_STL))) FIREBASE_LIBRARY_PATH:=\ $(FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL) # The Firebase C++ library `libfirebase_app.a` is required for all Firebase products. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_app LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_app.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) # Include the Firebase library for Google Analytics. # Note: Duplicate this block for each Firebase product that you want # to use in your app, and replace variable values as appropriate. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_analytics LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_analytics.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:=android_main # Reference your project's C++ source files LOCAL_SRC_FILES:=\ $(LOCAL_PATH)/src/common_main.cc \ $(LOCAL_PATH)/src/android/android_main.cc LOCAL_STATIC_LIBRARIES:=\ firebase_analytics \ firebase_app # this library reference must always be listed last LOCAL_WHOLE_STATIC_LIBRARIES:=\ android_native_app_glue LOCAL_C_INCLUDES:=\ $(NDK_ROOT)/sources/android/native_app_glue \ $(LOCAL_PATH)/src LOCAL_LDLIBS:=-llog -landroid -latomic LOCAL_ARM_MODE:=arm LOCAL_LDFLAGS:=-Wl,-z,defs -Wl,--no-undefined include $(BUILD_SHARED_LIBRARY) $(call import-add-path,$(NDK_ROOT)/sources/android) $(call import-module,android/native_app_glue)
-
-
Öffnen Sie die
build.gradle
-Datei der obersten Ebene und führen Sie die folgenden Schritte aus:-
Fügen Sie die Abhängigkeiten für die Firebase-Produkte hinzu, die Sie verwenden möchten. So verwenden Sie beispielsweise Analytics:
dependencies { implementation 'com.google.firebase:firebase-analytics:21.0.0' }
-
Fügen Sie die folgenden Zeilen hinzu, damit Ihr Projekt die integrierte ndk-build-Unterstützung von Gradle verwendet, um die in Ihrer
jni/Android.mk
-Datei angegebenen Firebase-Bibliotheken einzubinden.android { // ... defaultConfig { // ... externalNativeBuild.ndkBuild { arguments "FIREBASE_CPP_SDK_DIR=${project.ext.firebase_cpp_sdk_dir}", "NDK_APPLICTION_MK=jni/Application.mk", sprintf("APP_PLATFORM=android-%d", android.defaultConfig.minSdkVersion.mApiLevel) } } }
-
Verfügbare Bibliotheken für Android (mit ndk-build)
Jedes Firebase-Produkt hat unterschiedliche Abhängigkeiten. Fügen Sie alle aufgeführten Abhängigkeiten für die Firebase-Produkte hinzu, die Sie verwenden möchten.
Fügen Sie Firebase-C++-Bibliotheken (z. B. libfirebase_app.a
) hinzu, indem Sie sie in die Datei jni/Android.mk
der obersten Ebene einfügen. Fügen Sie andere Abhängigkeiten (z. B. com.google.firebase:firebase-auth
) der build.gradle
-Datei auf oberster Ebene hinzu.
Firebase-Produkt | Bibliotheken und Abhängigkeiten |
---|---|
AdMob |
libfirebase_admob.a (erforderlich) libfirebase_analytics.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-ads:19.8.0' (erforderlich) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Analytics |
libfirebase_analytics.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
App Check |
libfirebase_app_check.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-appcheck:17.0.0'
|
Authentication |
libfirebase_auth.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-auth:21.0.5'
|
Cloud Firestore |
libfirebase_firestore.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-firestore:24.1.2'
|
Cloud Functions |
libfirebase_functions.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-functions:20.1.0'
|
Cloud Messaging |
libfirebase_messaging.a (empfohlen) libfirebase_analytics.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-messaging:23.0.5' (empfohlen) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Cloud Storage |
libfirebase_storage.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-storage:20.0.1'
|
Dynamic Links |
ibfirebase_dynamic_links.a (empfohlen) libfirebase_analytics.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-dynamic-links:21.0.1' (empfohlen) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Realtime Database |
libfirebase_database.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-database:20.0.5'
|
Remote Config |
libfirebase_remote_config.a (empfohlen) libfirebase_analytics.a (erforderlich) libfirebase_app.a implementation 'com.google.firebase:firebase-config:21.1.0' (empfohlen) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
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 Android (mit CMake)
C++-Bibliotheken für Apple-Plattformen sind auf der Version dieser Einrichtungsseite für Apple-Plattformen (iOS und höher) 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 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 bietet das Script generate_xml_from_google_services_json.py
, mit dem google-services.json
in .xml
-Ressourcen umgewandelt werden kann, die Sie in Ihr Projekt einbinden können. Dieses Script führt dieselbe Transformation durch, die das Gradle-Plug-in für Google Play-Dienste beim Erstellen von Android-Anwendungen durchführt.
Wenn Sie nicht mit Gradle erstellen (z. B. mit ndk-build, Makefiles oder Visual Studio), können Sie mit diesem Script die Generierung von Android-Stringressourcen automatisieren.
ProGuard
Viele Android-Build-Systeme verwenden ProGuard für Builds im Release-Modus, um die Größe von Anwendungen zu verringern und den Java-Quellcode zu schützen.
Wenn Sie ProGuard verwenden, müssen Sie die Dateien in libs/android/*.pro
den Firebase-C++-Bibliotheken hinzufügen, die Sie in Ihrer ProGuard-Konfiguration verwenden.
Wenn Sie beispielsweise Google Analytics mit Gradle verwenden, 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 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, sind die Google Play-Dienste auf dem Clientgerät nicht verfügbar. Sie müssen also aktualisiert, reaktiviert, Berechtigungen korrigiert usw. werden. Die Firebase-Bibliothek kann erst verwendet werden, wenn das Problem auf dem Clientgerät behoben wurde.
Mit den Funktionen unter google_play_services/availability.h
kannst du 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 | Nicht erforderlich (in der Regel) |
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 for Android können 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 Standardcom.google.firebase:firebase-ads
-Abhängigkeit verwenden, sind Google Play-Dienste erforderlich.
Bei der AdMob-Initialisierung wird nur kInitResultFailedMissingDependency
zurückgegeben, wenn beide der folgenden Bedingungen erfüllt sind:
- Die 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 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ü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-
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 Ihrem C++-Projekt ein beliebiges unterstütztes Firebase-Produkt hinzufügen. In diesem Beispiel zeigen wir, wie Sie Firebase Authentication und Firebase Realtime Database hinzufügen.
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 (Computer)
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 | 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 restlichen 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- (x86-) oder 64-Bit-Modus (x64)
- Windows-Laufzeitumgebung: Multithreaded / MT im Vergleich zu 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++-Desktopanwendungen unter macOS erstellen, verknüpfen Sie Folgendes mit Ihrem Projekt:
pthread
-SystembibliothekCoreFoundation
macOS-SystemframeworkFoundation
macOS-SystemframeworkSecurity
macOS-SystemframeworkGSS
macOS-SystemframeworkKerberos
macOS-SystemframeworkSystemConfiguration
macOS-Systemframework
Weitere Informationen finden Sie in der Compilerdokumentation.
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 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 Compilerdokumentation. Wenn Sie mit GCC 5 oder höher erstellen, müssen Sie -D_GLIBCXX_USE_CXX11_ABI=0
definieren.
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.
- Im Firebase-Dashboard Nutzung und Abrechnung können Sie sich ein Gesamtbild der Nutzung Ihres Projekts in mehreren Firebase-Diensten machen.
- Sehen Sie sich die Checkliste für die Einführung von Firebase an.