Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Fügen Sie Ihrem C ++ - Projekt Firebase hinzu

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

Greifen Sie vollständig über Ihren C ++ - Code auf Firebase zu, ohne plattformeigenen Code schreiben zu müssen. Das Firebase SDK übersetzt auch viele sprachspezifische Redewendungen, die von Firebase verwendet werden, in eine Oberfläche, die C ++ - Entwicklern besser bekannt ist.

Weitere Informationen zum Einschalten Ihrer Spiele mit Firebase finden Sie auf unserer Firebase-Spieleseite .

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

Voraussetzungen

  • Installieren Sie Ihren bevorzugten Editor oder Ihre bevorzugte IDE, z. B. Android Studio, IntelliJ oder VS Code.

  • Beziehen Sie das Android SDK .

  • Stellen Sie sicher, dass Ihr Projekt die folgenden Anforderungen erfüllt:

  • Richten Sie ein physisches Gerät ein oder verwenden Sie einen Emulator, um Ihre App auszuführen.

    • Emulatoren müssen bei Google Play ein Emulatorbild verwenden.

    • Für einige C ++ - Bibliotheken sind Google Play-Dienste auf dem Clientgerät erforderlich. Überprüfen Sie die Liste auf dieser Seite.

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

Schritt 2 : Erstellen Sie ein Firebase-Projekt

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. Besuchen Sie Firebase-Projekte verstehen , um mehr über Firebase-Projekte zu erfahren.

Schritt 3 : Registrieren Sie Ihre App bei Firebase

Um Firebase in Ihrer Android-App verwenden zu können, müssen Sie Ihre App bei Ihrem Firebase-Projekt registrieren. Das Registrieren Ihrer App wird häufig als "Hinzufügen" Ihrer App zu Ihrem Projekt bezeichnet.

  1. Gehen Sie zur Firebase-Konsole .

  2. Klicken Sie in der Mitte der das Android- Symbol ( ) oder App , um den Setup-Workflow zu starten.

  3. Geben Sie den Paketnamen Ihrer App in das Feld Android-Paketname ein.

  4. (Optional) Geben Sie weitere App-Informationen ein: App-Kurzname und Debug-Signaturzertifikat SHA-1 .

  5. Klicken Sie auf App registrieren .

Schritt 4 : Fügen Sie die Firebase-Konfigurationsdatei hinzu

  1. Klicken Sie auf google-services.json herunterladen , um Ihre Firebase Android-Konfigurationsdatei abzurufen.

  2. Öffnen Sie Ihr C ++ - Projekt in einer IDE und fügen Sie Ihre Konfigurationsdatei zu Ihrem Projekt hinzu:

  3. (Nur Gradle-Builds) Um Firebase-Dienste in Ihrem C ++ - Projekt zu aktivieren, fügen Sie das Google Services-Plugin zu Ihrer build.gradle Datei der obersten Ebene build.gradle .

    1. Fügen Sie Regeln hinzu, um das Google Services Gradle-Plugin einzuschließen. Überprüfen Sie, ob Sie auch über das Maven-Repository von Google verfügen.

        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.3.5'  // Google Services plugin
            implementation 'com.google.android.gms:17.6.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. Wenden Sie das Google Services Gradle-Plugin an:

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. Sie sind mit dem Einrichten von Aufgaben in der Firebase-Konsole fertig. Fügen Sie unten weitere Firebase C ++ - SDKs hinzu .

Schritt 5 : Fügen Sie Firebase C ++ - SDKs hinzu

Die Schritte in diesem Abschnitt sind ein Beispiel für das Hinzufügen unterstützter Firebase-Produkte zu Ihrem Firebase C ++ - Projekt.

  1. Laden Sie das Firebase C ++ SDK herunter und entpacken Sie das SDK an einem geeigneten Ort.

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

  2. Geben Sie den Speicherort des entpackten SDK in Ihrem Projekt gradle.properties Datei:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. Fügen Sie der Datei settings.gradle Ihres Projekts Folgendes 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"
    
  4. Fügen Sie Ihrer app/build.gradle Gradle-Datei (App-Ebene) Folgendes hinzu (normalerweise app/build.gradle ):

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
    }
    
  5. CMakeLists.txt Datei CMakeLists.txt Ihres Projekts den folgenden Inhalt hinzu, einschließlich der Bibliotheken für die Firebase-Produkte, 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}")
    
  6. Synchronisieren Sie Ihre App, um sicherzustellen, dass alle Abhängigkeiten die erforderlichen Versionen haben.

  7. 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 den Ü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 mit Netzwerkzugriff ausgeführt haben, werden Sie von der Firebase-Konsole darüber informiert, dass Ihre App-Verbindung hergestellt ist.

Du bist fertig! 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 unserer Open-Source-SDK-Version auf GitHub .

Verfügbare Bibliotheken für Android (mit CMake)

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

Firebase-Produkt Bibliotheksreferenzen (mit CMake)
AdMob firebase_admob
(erforderlich) firebase_analytics
(erforderlich) firebase_app
Analytik firebase_analytics
(erforderlich) firebase_app
Authentifizierung firebase_auth
(erforderlich) firebase_app
Cloud Firestore (Beta) firebase_firestore
(erforderlich) firebase_app
(erforderlich) firebase_auth
Cloud-Funktionen firebase_functions
(erforderlich) firebase_app
Cloud Messaging firebase_messaging
(empfohlen) firebase_analytics
(erforderlich) firebase_app
Cloud-Speicher firebase_storage
(erforderlich) firebase_app
Dynamische Links firebase_dynamic_links
(empfohlen) firebase_analytics
(erforderlich) firebase_app
Echtzeitdatenbank firebase_database
(erforderlich) firebase_app
Remote-Konfiguration firebase_remote_config
(empfohlen) firebase_analytics
(erforderlich) firebase_app

Zusätzliche Informationen für die mobile Einrichtung

Abrufen von NDK-Absturzberichten

Firebase Crashlytics unterstützt die Absturzberichterstattung für Apps, die native Android-Bibliotheken verwenden. Weitere Informationen finden Sie unter Abrufen von Android NDK-Absturzberichten .

Kundenspezifische 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 aufnehmen können. Dieses Skript wendet dieselbe Transformation an, die das Gradle-Plugin für Google Play-Dienste beim Erstellen von Android-Anwendungen ausführt.

Wenn Sie nicht mit Gradle erstellen (z. B. ndk-build, makefiles, Visual Studio usw.), können Sie mit diesem Skript die Generierung von Android- Zeichenfolgenressourcen automatisieren.

ProGuard

Viele Android-Build-Systeme verwenden ProGuard für Builds im Release-Modus, um die Anwendungsgröße zu verringern und Java-Quellcode zu schützen.

Wenn Sie ProGuard verwenden, müssen Sie die Dateien in libs/android/*.pro hinzufügen, die den Firebase C ++ - Bibliotheken entsprechen, die Sie in Ihrer ProGuard-Konfiguration verwenden.

Wenn Sie beispielsweise mit Gradle Google Analytics verwenden, build.gradle Ihre build.gradle Datei folgendermaßen 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 der Google Play-Dienste

Für die meisten Firebase C ++ - Bibliotheken müssen sich die Google Play-Dienste auf dem Android-Gerät des Clients befinden. Wenn eine Firebase C ++ - Bibliothek bei der Initialisierung kInitResultFailedMissingDependency zurückgibt, bedeutet dies, dass die Google Play-Dienste auf dem kInitResultFailedMissingDependency nicht verfügbar sind (dh, sie müssen aktualisiert, reaktiviert, Berechtigungen festgelegt usw.). Die Firebase-Bibliothek kann erst verwendet werden, wenn die Situation auf dem Clientgerät korrigiert wurde.

Mithilfe der Funktionen in google_play_services/availability.h können Sie herausfinden, warum Google Play-Dienste auf dem google_play_services/availability.h nicht verfügbar sind (und versuchen, dies zu beheben).

In der folgenden Tabelle ist aufgeführt, ob für jedes unterstützte Firebase-Produkt Google Play-Dienste auf einem Clientgerät erforderlich sind.

Firebase C ++ - Bibliothek Google Play-Dienste auf dem Client-Gerät erforderlich?
AdMob Nicht erforderlich (normalerweise)
Analytik Nicht benötigt
Authentifizierung Erforderlich
Cloud Firestore Erforderlich
Cloud-Funktionen Erforderlich
Cloud Messaging Erforderlich
Cloud-Speicher Erforderlich
Dynamische Links Erforderlich
Echtzeitdatenbank Erforderlich
Remote-Konfiguration Erforderlich

AdMob- und Google Play-Dienste

Die meisten Versionen des Google Mobile Ads SDK für 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 anstelle der oben aufgeführten Standardabhängigkeit com.google.firebase:firebase-ads , sind Google Play-Dienste erforderlich .

Die AdMob-Initialisierung gibt nur dann kInitResultFailedMissingDependency wenn beide der folgenden kInitResultFailedMissingDependency sind:

  • Google Play-Dienste sind auf dem Clientgerät nicht verfügbar.
  • Sie verwenden com.google.android.gms:play-services-ads-lite .

Einrichten eines Desktop-Workflows ( Beta )

Wenn Sie ein Spiel erstellen, ist es oft viel einfacher, Ihr Spiel zuerst auf Desktop-Plattformen zu testen und später in der Entwicklung auf mobilen Gerä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. 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. Fügen Sie eine Firebase-Konfigurationsdatei für mobile Plattformen hinzu
  2. Erstellen Sie eine Desktop- Version der Firebase-Konfigurationsdatei:

    • Wenn Sie die Android google-services.json Datei google-services.json hinzugefügt haben - Wenn Sie Ihre App ausführen, sucht Firebase diese mobile Datei und generiert automatisch eine Desktop- Firebase-Konfigurationsdatei ( google-services-desktop.json ).

    • Wenn Sie die iOS GoogleService-Info.plist 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 aus demselben Verzeichnis wie Ihre GoogleService-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 für die Einrichtung der Firebase-Konsole eingegeben haben. Besuchen Sie Firebase-Projekte verstehen , um mehr über Konfigurationsdateien zu erfahren.

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

    Die folgenden Schritte dienen als Beispiel für das Hinzufügen eines unterstützten Firebase-Produkts zu Ihrem C ++ - Projekt. In diesem Beispiel werden die Firebase-Authentifizierung und die Firebase-Echtzeitdatenbank hinzugefügt.

    1. Setzen Sie FIREBASE_CPP_SDK_DIR Umgebungsvariable FIREBASE_CPP_SDK_DIR auf den Speicherort des entpackten Firebase C ++ - SDK.

    2. CMakeLists.txt 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 die Firebase-Authentifizierung und die Firebase-Echtzeitdatenbank:

      # 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 Desktop-Workflow-Unterstützung 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)
Authentifizierung firebase_auth
(erforderlich) firebase_app
Cloud Firestore (Beta) firebase_firestore
firebase_auth
firebase_app
Cloud-Funktionen firebase_functions
(erforderlich) firebase_app
Cloud-Speicher firebase_storage
(erforderlich) firebase_app
Echtzeitdatenbank 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) zur Verfügung, um das Erstellen für Windows, MacOS und Linux zu vereinfachen. Daher müssen Sie keinen bedingten Code kompilieren, um auf den Desktop abzuzielen.

Echtzeit-Datenbank-Desktop

Das Realtime Database SDK für den Desktop verwendet REST für den Zugriff auf Ihre Datenbank. Sie müssen daher die Indizes deklarieren, die Sie mit Query::OrderByChild() auf dem Desktop verwenden. Query::OrderByChild() Ihre Listener fehl.

Zusätzliche Informationen für die Desktop-Einrichtung

Windows-Bibliotheken

Für Windows werden Bibliotheksversionen bereitgestellt, die auf folgenden Kriterien basieren:

  • Build-Plattform: 32-Bit- (x86) und 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 der 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
Echtzeitdatenbank 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. Frameworks werden ebenfalls 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- CoreFoundation
  • Foundation MacOS-Systemframework
  • Security MacOS-System-Framework
  • GSS macOS System Framework
  • Kerberos macOS-Systemframework
  • SystemConfiguration macOS- SystemConfiguration

Weitere Informationen finden Sie in der Compiler-Dokumentation.

Linux-Bibliotheken

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

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

Verknüpfen Sie beim pthread C ++ - Desktop-Apps unter Linux die pthread Systembibliothek mit Ihrem Projekt. Weitere Informationen finden Sie in der Compiler-Dokumentation. Wenn Sie mit GCC 5 oder höher -D_GLIBCXX_USE_CXX11_ABI=0 , definieren Sie -D_GLIBCXX_USE_CXX11_ABI=0 .

Nächste Schritte