Firebase Ihrem C++-Projekt hinzufügen

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 Folgendes:

    • Xcode 16.2 oder höher
    • CocoaPods 1.12.0 oder höher
  • Ihr Projekt muss auf die folgenden Plattformversionen oder höher ausgerichtet sein:

    • iOS 13
    • tvOS 13
  • Richten Sie ein physisches Gerät ein oder verwenden Sie den Simulator, um Ihre App auszuführen.

  • Melden Sie sich mit Ihrem Google-Konto bei Firebase 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 Apple-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.

  1. Rufen Sie die Firebase-Konsole auf.

  2. 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.

  3. Geben Sie die Bundle-ID Ihrer App in das Feld Bundle-ID ein.

  4. Optional: Geben Sie weitere App-Informationen ein: App-Alias und App Store-ID.

  5. Klicken Sie auf App registrieren.

Schritt 4: Firebase-Konfigurationsdatei hinzufügen

  1. Klicken Sie auf GoogleService-Info.plist herunterladen, um die Firebase-Konfigurationsdatei für Apple-Plattformen zu erhalten.

  2. Öffnen Sie Ihr C++-Projekt in einer IDE und ziehen Sie die Konfigurationsdatei in das Stammverzeichnis Ihres C++-Projekts.

  3. Wenn Sie dazu aufgefordert werden, wählen Sie aus, dass die Konfigurationsdatei allen Zielen hinzugefügt werden soll.

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.

  1. 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.

  2. Fügen Sie Firebase-Pods aus dem entpackten SDK hinzu.

    1. Erstellen Sie eine Podfile-Datei, falls keine vorhanden ist:

      cd your-app-directory
      pod init

    2. 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'
    3. Installieren Sie die Pods und öffnen Sie dann die Datei .xcworkspace in Xcode.

      pod install
      open your-app.xcworkspace

  3. Fügen Sie die Firebase-Frameworks aus dem entzippten SDK hinzu.

    Am einfachsten fügen Sie diese Frameworks hinzu, indem Sie sie aus einem Finder-Fenster direkt in den Bereich Project Navigator von Xcode ziehen (standardmäßig der Bereich ganz links; alternativ können Sie auch oben links in Xcode auf das Dateisymbol klicken).

    1. Fügen Sie das Firebase C++-Framework firebase.framework hinzu. Es ist erforderlich, um ein Firebase-Produkt zu verwenden.

    2. 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.

  4. Klicken Sie in der Firebase-Konsole im Einrichtungs-Workflow auf Weiter.

  5. 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 diesen 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-Produkten 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 Apple-Plattformen

Hinweis: C++-Bibliotheken für Android werden auf der Android-Version dieser Einrichtungsseite aufgeführt.

Jedes Firebase-Produkt hat unterschiedliche Abhängigkeiten. Achten Sie darauf, dass Sie Ihrem Podfile und C++-Projekt alle aufgeführten Abhängigkeiten für das gewünschte Firebase-Produkt hinzufügen.

Jedes Firebase-Produkt unterstützt möglicherweise nur eine Auswahl von Apple-Betriebssystemplattformen (iOS, tvOS usw.). Weitere Informationen zu C++ und Firebase

Firebase-Produkt Frameworks und Pods
AdMob (erforderlich) firebase.framework
firebase_admob.framework
(erforderlich) firebase_analytics.framework

pod 'FirebaseAdMob', '12.0.0'
(erforderlich) pod 'FirebaseAnalytics', '12.0.0'
Analytics (erforderlich) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '12.0.0'
App Check (erforderlich) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '12.0.0'
Authentication (erforderlich) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '12.0.0'
Cloud Firestore (erforderlich) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '12.0.0'
pod 'FirebaseAuth', '12.0.0'
Cloud Functions (erforderlich) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '12.0.0'
Cloud Messaging (erforderlich) firebase.framework
firebase_messaging.framework
(empfohlen) firebase_analytics.framework

pod 'FirebaseMessaging', '12.0.0'
(empfohlen) pod 'FirebaseAnalytics', '12.0.0'
Cloud Storage (erforderlich) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.0.0'
Dynamic Links (erforderlich) firebase.framework
firebase_dynamic_links.framework
(empfohlen) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.0.0'
(empfohlen) pod 'FirebaseAnalytics', '12.0.0'
Realtime Database (erforderlich) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.0.0'
Remote Config (erforderlich) firebase.framework
firebase_remote_config.framework
(empfohlen) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.0.0'
(empfohlen) pod 'FirebaseAnalytics', '12.0.0'

Zusätzliche Informationen zur Einrichtung auf Mobilgeräten

Method Swizzling

Unter iOS erfordern einige Anwendungsereignisse (z. B. das Öffnen von URLs und der Empfang von Benachrichtigungen), dass das Anwendungs-Delegate bestimmte Methoden implementiert. Wenn Ihre App beispielsweise eine Benachrichtigung empfangen soll, muss ihr Delegat application:didReceiveRemoteNotification: implementieren. Da jede iOS-Anwendung ihren eigenen App-Delegate hat, verwendet Firebase Method Swizzling. Damit kann eine Methode durch eine andere ersetzt werden, um eigene Handler zusätzlich zu den von Ihnen implementierten anzuhängen.

Die Bibliotheken Dynamic Links und Cloud Messaging müssen Handler mithilfe von Method Swizzling an das Anwendungs-Delegate anhängen. Wenn Sie eines dieser Firebase-Produkte verwenden, wird beim Laden Ihre AppDelegate-Klasse von Firebase erkannt und die erforderlichen Methoden werden darauf angewendet. Dabei wird ein Aufruf an Ihre vorhandene Methodenimplementierung weitergeleitet.

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.

  1. Für Desktop-Workflows müssen Sie Folgendes ausführen:

    1. C++-Projekt für CMake konfigurieren
    2. Firebase-Projekt erstellen
    3. App (iOS oder Android) bei Firebase registrieren
    4. Firebase-Konfigurationsdatei für mobile Plattformen hinzufügen
  2. 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 Ihre GoogleService-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

  3. 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.

    1. Legen Sie die Umgebungsvariable FIREBASE_CPP_SDK_DIR auf den Speicherort des entzippten Firebase C++ SDK fest.

    2. 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}")
  4. 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-Systembibliothek
  • CoreFoundation macOS-Systemframework
  • Foundation macOS-Systemframework
  • Security macOS-Systemframework
  • GSS macOS-Systemframework
  • Kerberos macOS-Systemframework
  • SystemConfiguration 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