Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase zu Ihrem C++-Projekt hinzufügen

Stärken Sie Ihre C++-Spiele mit unseren Firebase C++ SDKs, die eine C++-Schnittstelle zusätzlich zu Firebase für iOS und Android bieten.

Greifen Sie vollständig von Ihrem C++-Code aus auf Firebase zu, ohne plattformnativen Code schreiben zu müssen. Das Firebase SDK übersetzt auch viele sprachspezifische Idiome, die von Firebase verwendet werden, in eine Benutzeroberfläche, die C++-Entwicklern vertrauter ist.

Erfahren Sie mehr Informationen über Einschalten Ihre Spiele mit Firebase in unserem Firebase Spiele Seite .

Haben Sie Firebase bereits zu Ihrem C++-Projekt hinzugefügt? Stellen Sie sicher , dass Sie die neueste Version des verwenden Firebase C ++ SDK .

Voraussetzungen

  • Installieren Sie Folgendes:

    • Xcode 12 oder höher
    • CocoaPods 1.10.0 oder höher
  • Stellen Sie sicher, dass Ihr Projekt auf iOS 10 oder höher ausgerichtet ist.

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

  • Melden Sie sich bei Firebase mit Ihrem Google - Konto.

Schritt 2: Firebase - Projekt erstellen

Bevor Sie Ihrem C++-Projekt Firebase hinzufügen können, müssen Sie ein Firebase-Projekt erstellen, um eine Verbindung zu Ihrem C++-Projekt herzustellen. Besuchen Sie verstehen Firebase Projekte mehr über Projekte Firebase zu lernen.

Schritt 3: Registrieren Sie Ihre App mit Firebase

Nachdem Sie ein Firebase-Projekt erstellt haben, können Sie ihm Ihre iOS-App hinzufügen.

Besuchen Sie verstehen Firebase Projekte für das Hinzufügen von Anwendungen zu einem Projekt Firebase mehr über Best Practices und Überlegungen zu lernen, auch , wie mehrere Build - Varianten zu behandeln.

  1. Gehen Sie auf die Firebase Konsole .

  2. Im Zentrum des Projekts Übersichtsseite klicken Sie auf das iOS - Symbol ( ) , um den Setup - Workflow zu starten.

    Wenn Sie bereits eine App zu Ihrem Firebase - Projekt hinzugefügt haben, klicken Sie App Fügen Sie die Plattform - Optionen anzuzeigen.

  3. Geben Sie Ihre App-Bundle - ID in der iOS - Bundle - ID - Feld.

  4. (Optional) Geben Sie weitere Informationen zur App: App Spitznamen und App Store - ID.

  5. Klicken Sie auf Registrieren App.

Schritt 4: Fügen Sie die Firebase - Konfigurationsdatei

  1. Klicken Sie auf Download GoogleService-Info.plist auf Ihre Firebase iOS config - Datei zu erhalten.

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

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

Sie sind mit dem Einrichten der Aufgaben in der Firebase-Konsole fertig. Weiter zu Firebase C ++ SDKs hinzufügen unten.

Schritt 5: Hinzufügen Firebase C ++ SDKs

Die Schritte in diesem Abschnitt sind ein Beispiel dafür , wie man hinzufügen unterstützte Firebase Produkte zu Ihrer Firebase C ++ Projekt.

  1. Laden Sie die Firebase C ++ SDK , entpacken Sie dann das SDK irgendwo bequem.

    Das Firebase C++ SDK ist nicht plattformspezifisch, enthält jedoch plattformspezifische Bibliotheken.

  2. In Firebase Schoten aus dem entpackten SDK.

    1. Erstellen Sie eine Podfile wenn Sie nicht bereits haben ein:

      cd your-app-directory
      pod init

    2. Fügen Sie Ihrer Poddatei die Firebase-Pods hinzu, die Sie in Ihrer App verwenden möchten.

      Analytics aktiviert

      # Add the Firebase pod for Google Analytics
      pod 'Firebase/Analytics'
      # 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 'Firebase/Auth' pod 'Firebase/Database'

      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 'Firebase/Auth'
      pod 'Firebase/Database'
    3. Installieren Sie die Schoten, dann öffnen Sie die .xcworkspace Datei in Xcode.

      pod install
      open your-app.xcworkspace

  3. In Firebase - Frameworks aus dem entpackten SDK.

    Der einfachste Weg , diese Frameworks hinzuzufügen , ist in der Regel sie von einem ziehen Finder - Fenster direkt in Xcode Project Navigator Scheibe (die weit linken Bereich standardmäßig, oder klicken Sie auf das Dateisymbol in der linken oberen Ecke von Xcode).

    1. Fügen Sie die Firebase C ++ Framework firebase.framework , die jede Firebase Produkt zu verwenden , erforderlich ist.

    2. Fügen Sie das Framework für jedes Firebase-Produkt hinzu, das Sie verwenden möchten. Zum Beispiel Firebase - Authentifizierung zu verwenden, fügen Sie firebase_auth.framework .

  4. Zurück in der Firebase - Konsole im Setup - Workflow, klicken Sie 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 integriert haben. Andernfalls können Sie diesen Überprüfungsschritt überspringen.

    In Ihren Geräteprotokollen wird die Firebase-Überprüfung angezeigt, dass die Initialisierung abgeschlossen ist. Wenn Sie Ihre App auf einem Emulator laufen den Netzwerkzugriff hat, die Firebase Konsole benachrichtigt Sie , dass Ihre App - Verbindung abgeschlossen ist .

Sie sind fertig! Ihre C++-App ist registriert und für die Verwendung von Firebase-Produkten konfiguriert.

Verfügbare Bibliotheken

Erfahren Sie mehr über die C ++ Bibliotheken Firebase in der Referenzdokumentation und in unserer Open-Source - SDK Version auf GitHub .

Verfügbare Bibliotheken für iOS

Beachten Sie, dass C ++ Bibliotheken für Android auf der aufgeführt sind Android - Version dieser Setup - Seite .

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

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

pod 'Firebase/AdMob', '8.7.0'
(erforderlich) pod 'Firebase/Analytics', '8.7.0'
Analytik (erforderlich) firebase.framework
firebase_analytics.framework

pod 'Firebase/Analytics', '8.7.0'
Authentifizierung (erforderlich) firebase.framework
firebase_auth.framework

pod 'Firebase/Auth', '8.7.0'
Cloud Firestor (beta) (erforderlich) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '8.7.0'
pod 'Firebase/Auth', '8.7.0'
Cloud-Funktionen (erforderlich) firebase.framework
firebase_functions.framework

pod 'Firebase/Functions', '8.7.0'
Cloud-Messaging (erforderlich) firebase.framework
firebase_messaging.framework
(empfohlen) firebase_analytics.framework

pod 'Firebase/Messaging', '8.7.0'
(empfohlen) pod 'Firebase/Analytics', '8.7.0'
Cloud-Speicher (erforderlich) firebase.framework
firebase_storage.framework

pod 'Firebase/Storage', '8.7.0'
Dynamische Links (erforderlich) firebase.framework
firebase_dynamic_links.framework
(empfohlen) firebase_analytics.framework

pod 'Firebase/DynamicLinks', '8.7.0'
(empfohlen) pod 'Firebase/Analytics', '8.7.0'
Echtzeit-Datenbank (erforderlich) firebase.framework
firebase_database.framework

pod 'Firebase/Database', '8.7.0'
Remote-Konfiguration (erforderlich) firebase.framework
firebase_remote_config.framework
(empfohlen) firebase_analytics.framework

pod 'Firebase/RemoteConfig', '8.7.0'
(empfohlen) pod 'Firebase/Analytics', '8.7.0'

Zusätzliche Informationen zur mobilen Einrichtung

Methode swizzling

Unter iOS erfordern einige Anwendungsereignisse (z. B. das Öffnen von URLs und das Empfangen von Benachrichtigungen) von Ihrem Anwendungsdelegaten die Implementierung bestimmter Methoden. Um zum Beispiel eine Benachrichtigung erhalten haben könnte Ihre Anwendung delegiert erfordern zu implementieren application:didReceiveRemoteNotification: . Da jedes iOS - Anwendung ihre eigene AppDelegate hat, verwendet Firebase Methode Swizzling, die den Ersatz eines Verfahrens mit einem anderen erlaubt, ihre eigenen Handler zusätzlich zu einem befestigen , die Sie implementiert haben könnte.

Die Dynamic Links- und Cloud Messaging-Bibliotheken müssen dem Anwendungsdelegaten Handler mithilfe von Methoden-Swizzling anhängen. Wenn Sie eines dieser Produkte Firebase, zur Ladezeit verwenden, wird Ihre Firebase identifiziert AppDelegate Klasse und die erforderlichen Methoden auf sie swizzle, einen Rückruf zu Ihrer bestehenden Methodenimplementierung Verkettungs.

Richten Sie einen Desktop - Workflow (beta)

Wenn Sie ein Spiel erstellen, ist es oft viel einfacher, Ihr Spiel zuerst auf Desktop-Plattformen zu testen und dann später in der Entwicklung auf mobilen Geräten bereitzustellen und zu testen. Um diesen Workflow zu unterstützen, bieten wir eine Teilmenge der Firebase C ++ SDKs , die auf Windows, MacOS, Linux laufen kann, und aus dem C ++ Editor.

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

    1. Konfigurieren Sie Ihr C++-Projekt für CMake.
    2. Erstellen Sie ein Firebase-Projekt
    3. Registrieren Sie Ihre App (iOS oder Android) bei Firebase
    4. Hinzufügen einer Firebase-Konfigurationsdatei für eine mobile Plattform
  2. Erstellen Sie eine Desktop - Version der Firebase - Konfigurationsdatei:

    • Wenn Sie die Android hinzugefügt google-services.json Datei - Wenn Sie Ihre Anwendung ausführen, Firebase diese mobile Datei gefunden hat , dann wird automatisch eine Desktop Firebase - Konfigurationsdatei ( google-services-desktop.json ).

    • Wenn Sie die iOS hinzugefügt GoogleService-Info.plist Datei - Bevor Sie Ihre Anwendung ausführen, müssen Sie diese Handy - Datei auf eine Desktop - Firebase Config - Datei konvertieren. Um die Datei zu konvertieren, führen Sie den folgenden Befehl aus dem gleichen Verzeichnis wie die GoogleService-Info.plist - Datei:

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    Diese Desktop-Konfigurationsdatei enthält die C++-Projekt-ID, die Sie im Einrichtungsworkflow der Firebase-Konsole eingegeben haben. Besuchen Sie verstehen Firebase Projekte mehr über Konfigurationsdateien zu lernen.

  3. Fügen Sie Ihrem C++-Projekt Firebase SDKs hinzu.

    Die folgenden Schritte dienen als Beispiel dafür , wie jede hinzuzufügen unterstützte Firebase Produkt zu Ihrem C ++ Projekt. In diesem Beispiel gehen wir durch das Hinzufügen von Firebase Authentication und Firebase Realtime Database.

    1. Legen Sie Ihre FIREBASE_CPP_SDK_DIR Umgebungsvariable auf die Position des entpackten Firebase C ++ SDK.

    2. Um Ihr Projekt CMakeLists.txt Datei, fügen Sie den folgenden Inhalt, 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)

Die Firebase C ++ SDK enthält Desktop - Workflow - Unterstützung für eine Teilmenge von Merkmalen, so dass bestimmte Teile von Firebase im Standalone - Desktop verwendet werden sollte baut auf Windows, MacOS und Linux.

Firebase-Produkt Bibliotheksreferenzen (mit CMake)
Authentifizierung firebase_auth
(erforderlich) firebase_app
Cloud Firestor (beta) firebase_firestore
firebase_auth
firebase_app
Cloud-Funktionen firebase_functions
(erforderlich) firebase_app
Cloud-Speicher firebase_storage
(erforderlich) firebase_app
Echtzeit-Datenbank firebase_database
(erforderlich) firebase_app
Remote-Konfiguration firebase_remote_config
(erforderlich) firebase_app

Firebase stellt die verbleibenden Desktop-Bibliotheken 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 auf den Desktop abzuzielen.

Echtzeit-Datenbank-Desktop

Die Echtzeit - Datenbank - SDK für Desktop verwendet REST Ihre Datenbank zugreifen zu können , so müssen Sie die Indizes erklären , dass Sie verwenden , um mit Query::OrderByChild() auf dem Desktop oder Ihre Zuhörer wird scheitern.

Zusätzliche Informationen zur Desktop-Einrichtung

Windows-Bibliotheken

Für Windows werden Bibliotheksversionen basierend auf den folgenden bereitgestellt:

  • Build-Plattform: 32-Bit (x86) vs 64-Bit (x64) Modus
  • Windows-Laufzeitumgebung: Multithreaded / MT vs Multithreaded DLL /MD
  • Ziel: Release vs. Debug

Beachten Sie, dass die folgenden Bibliotheken mit Visual Studio 2015 und 2017 getestet wurden.

Verknüpfen Sie beim Erstellen von C++-Desktop-Apps unter Windows die folgenden Windows SDK-Bibliotheken mit Ihrem Projekt. Weitere Informationen finden Sie in Ihrer Compiler-Dokumentation.

Firebase C++-Bibliothek Abhängigkeiten der Windows SDK-Bibliothek
Authentifizierung advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Cloud-Funktionen advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud-Speicher advapi32, ws2_32, crypt32
Echtzeit-Datenbank advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Remote-Konfiguration advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS-Bibliotheken

Für macOS (Darwin) werden Bibliotheksversionen für die 64-Bit-Plattform (x86_64) bereitgestellt. Rahmen werden auch für Ihre Bequemlichkeit bereitgestellt.

Beachten Sie, dass die macOS-Bibliotheken mit Xcode 12 getestet wurden.

Verknüpfen Sie beim Erstellen von C++-Desktop-Apps unter macOS Folgendes mit Ihrem Projekt:

  • pthread Systembibliothek
  • CoreFoundation macOS Systemrahmen
  • Foundation macOS System Rahmen
  • Security macOS System Rahmen
  • GSS macOS Systemrahmen
  • Kerberos macOS System Rahmen
  • SystemConfiguration macOS Systemrahmen

Weitere Informationen finden Sie in Ihrer Compiler-Dokumentation.

Linux-Bibliotheken

Für Linux werden Bibliotheksversionen für 32-Bit- (i386) und 64-Bit-(x86_64)-Plattformen bereitgestellt.

Beachten Sie, dass die Linux-Bibliotheken mit GCC 4.8.0, GCC 7.2.0 und Clang 5.0 auf Ubuntu getestet wurden.

Wenn C ++ Desktop - Anwendungen auf Linux bauen, verbindet die pthread Systembibliothek zu Ihrem Projekt. Weitere Informationen finden Sie in Ihrer Compiler-Dokumentation. Wenn Sie sich Gebäude mit GCC 5 oder höher, definieren -D_GLIBCXX_USE_CXX11_ABI=0 .

Nächste Schritte