Ajouter Firebase à votre projet C++

Dynamisez vos jeux C++ avec nos SDK Firebase C++ qui fournissent une interface C++ au-dessus de Firebase pour iOS et pour Android.

Accédez à Firebase entièrement à partir de votre code C++, sans avoir à écrire de code natif de la plate-forme. Le SDK Firebase traduit également de nombreux idiomes spécifiques à la langue utilisés par Firebase en une interface plus familière aux développeurs C++.

Pour en savoir plus d' informations sur la mise sous tension vos jeux avec Firebase sur notre page jeux Firebase .

Vous avez déjà ajouté Firebase à votre projet C++ ? Assurez - vous que vous utilisez la dernière version du Firebase C ++ SDK .

Conditions préalables

  • Installez votre éditeur ou IDE préféré, comme Android Studio, IntelliJ ou VS Code.

  • Obtenir le SDK Android .

  • Assurez-vous que votre projet répond aux exigences suivantes :

  • Configurez un appareil physique ou utilisez un émulateur pour exécuter votre application.

    • Émulateurs doivent utiliser une image de l' émulateur avec Google Play.

    • Pour certaines bibliothèques C++, les services Google Play sont requis sur l'appareil client ; examiner la liste sur cette page.

  • Connectez - vous à Firebase en utilisant votre compte Google.

Étape 2: Création d' un projet Firebase

Avant de pouvoir ajouter Firebase à votre projet C++, vous devez créer un projet Firebase pour vous connecter à votre projet C++. Visitez Comprendre Firebase projets pour en savoir plus sur les projets Firebase.

Étape 3: Enregistrez votre application avec Firebase

Pour utiliser Firebase dans votre application Android, vous devez enregistrer votre application avec votre projet Firebase. L'enregistrement de votre application est souvent appelé "ajout" de votre application à votre projet.

  1. Allez à la console Firebase .

  2. Au centre de la page d'aperçu du projet, cliquez sur l'icône Android ( ) ou Ajouter application pour lancer le flux de travail de configuration.

  3. Entrez le nom du package de votre application dans le champ Nom du package Android.

  4. (Facultatif) Entrez les autres informations de l' application: certificat pseudonyme App et signature de débogage SHA-1.

  5. Cliquez sur l' application de vous inscrire.

Étape 4: Ajoutez le fichier de configuration Firebase

  1. Cliquez sur Télécharger google-services.json pour obtenir votre fichier de configuration Firebase Android.

  2. Ouvrez votre projet C++ dans un IDE, puis ajoutez votre fichier de configuration à votre projet :

  3. (Gradle construit uniquement) Pour activer les services Firebase dans votre projet C ++, ajoutez les services de google-plugin à votre haut niveau build.gradle fichier.

    1. Ajoutez des règles pour inclure le plug-in Google Services Gradle. Vérifiez que vous disposez également du référentiel Maven de Google.

        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.8'  // 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. Appliquez le plug-in Google Services Gradle :

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. Vous avez terminé avec les tâches de configuration dans la console Firebase. Continuer à Ajouter Firebase C les SDKs de dessous.

Étape 5: Ajouter Firebase C les SDKs de

Les étapes de cette section sont un exemple de la façon d'ajouter des produits Firebase pris en charge au projet de votre Firebase C.

  1. Télécharger le Firebase C ++ SDK , puis décompressez le SDK endroit pratique.

    Le SDK Firebase C++ n'est pas spécifique à la plate-forme, mais il contient des bibliothèques spécifiques à la plate-forme.

  2. Indiquez l'emplacement du SDK décompressé dans votre projet gradle.properties fichier:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. Ajouter ce qui suit à votre projet settings.gradle fichier:

    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. Ajouter ce qui suit à votre module (app-niveau) de fichier Gradle (généralement 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. Pour votre projet de CMakeLists.txt fichier, ajoutez le contenu suivant, y compris les bibliothèques pour les produits que vous Firebase souhaitez utiliser dans votre application.

    Analytique activée

    # 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 non activé

    # 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. Synchronisez votre application pour vous assurer que toutes les dépendances ont les versions nécessaires.

  7. Si vous avez ajouté Analytics, exécutez votre application pour envoyer la vérification à Firebase que vous avez bien intégré Firebase. Sinon, vous pouvez ignorer l'étape de vérification.

    Les journaux de votre appareil afficheront la vérification Firebase que l'initialisation est terminée. Si vous avez exécuté votre application sur un émulateur qui a accès au réseau, la console Firebase vous avertit que votre connexion application est terminée.

Vous êtes prêt ! Votre application C++ est enregistrée et configurée pour utiliser les services Firebase.

Bibliothèques disponibles

En savoir plus sur les bibliothèques C ++ dans Firebase la documentation de référence et dans notre version de SDK open source sur GitHub .

Bibliothèques disponibles pour Android ( en utilisant CMake)

Notez que les bibliothèques de C pour iOS sont répertoriés sur la version de l' IOS de cette page de configuration .

Produit Firebase Références de bibliothèque (à l'aide de CMake)
AdMob firebase_admob
(obligatoire) firebase_analytics
(obligatoire) firebase_app
Analytique firebase_analytics
(obligatoire) firebase_app
Authentification firebase_auth
(obligatoire) firebase_app
Cloud Firestore (beta) firebase_firestore
(obligatoire) firebase_app
(obligatoire) firebase_auth
Fonctions Cloud firebase_functions
(obligatoire) firebase_app
Messagerie Cloud firebase_messaging
(recommandé) firebase_analytics
(obligatoire) firebase_app
Stockage en ligne firebase_storage
(obligatoire) firebase_app
Liens dynamiques firebase_dynamic_links
(recommandé) firebase_analytics
(obligatoire) firebase_app
Base de données en temps réel firebase_database
(obligatoire) firebase_app
Configuration à distance firebase_remote_config
(recommandé) firebase_analytics
(obligatoire) firebase_app

Informations supplémentaires pour la configuration mobile

Obtenir des rapports de plantage NDK

Firebase Crashlytics prend en charge les rapports de plantage pour les applications utilisant des bibliothèques natives Android. Pour en savoir plus, consultez Obtenir des rapports de plantage Android NDK .

Systèmes de construction personnalisés

Firebase fournit le script generate_xml_from_google_services_json.py pour convertir google-services.json pour .xml ressources que vous pouvez inclure dans votre projet. Ce script applique la même transformation que le plug-in Gradle des services Google Play effectue lors de la création d'applications Android.

Si vous ne construisez pas à l' aide Gradle (par exemple, vous utilisez NDK-build, makefile, Visual Studio, etc.), vous pouvez utiliser ce script pour automatiser la génération de ressources Chaîne Android .

ProGuard

De nombreux systèmes de construction Android utilisent ProGuard pour builds en mode Relâchez pour réduire la taille des applications et protéger le code source Java.

Si vous utilisez ProGuard, vous aurez besoin d'ajouter les fichiers dans libs/android/*.pro correspondant aux Firebase bibliothèques C ++ que vous utilisez dans votre configuration ProGuard.

Par exemple, avec Gradle, si vous utilisez Google Analytics, votre build.gradle fichier ressemblerait à ceci:

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
    }
  }
}

Exigences relatives aux services Google Play

La plupart Firebase bibliothèques C ont besoin de services Google Play pour être sur appareil Android du client. Si un rendement de bibliothèque Firebase C kInitResultFailedMissingDependency sur l' initialisation, cela signifie que les services Google Play ne sont pas disponibles sur le périphérique client ( ce qui signifie qu'il doit être mis à jour, réactivée, autorisations fixes, etc.). La bibliothèque Firebase ne peut pas être utilisée tant que la situation sur l'appareil client n'est pas corrigée.

Vous pouvez savoir pourquoi les services Google Play est disponible sur le périphérique client (et essayer de le réparer) en utilisant les fonctions google_play_services/availability.h .

Le tableau suivant indique si les services Google Play sont requis sur un appareil client pour chaque produit Firebase pris en charge.

Bibliothèque Firebase C++ Services Google Play requis sur l'appareil client ?
AdMob Non requis ( en général)
Analytique Non requis
Authentification Obligatoire
Cloud Firestore Obligatoire
Fonctions Cloud Obligatoire
Messagerie Cloud Obligatoire
Stockage en ligne Obligatoire
Liens dynamiques Obligatoire
Base de données en temps réel Obligatoire
Configuration à distance Obligatoire

Services AdMob et Google Play

La plupart des versions du SDK Google Mobile Ads pour Android peuvent fonctionner correctement sans les services Google Play sur l'appareil client. Toutefois, si vous utilisez les com.google.android.gms:play-services-ads-lite dépendance, au lieu de la norme com.google.firebase:firebase-ads dépendance énumérés ci - dessus, les services Google Play est nécessaire.

AdMob initialisation ne retourne kInitResultFailedMissingDependency lorsque les deux conditions suivantes sont remplies:

  • Les services Google Play ne sont pas disponibles sur l'appareil client.
  • Vous utilisez com.google.android.gms:play-services-ads-lite .

Mettre en place un flux de travail de bureau (bêta)

Lorsque vous créez un jeu, il est souvent beaucoup plus facile de tester d'abord votre jeu sur des plates-formes de bureau, puis de le déployer et de le tester sur des appareils mobiles plus tard dans le développement. Pour prendre en charge ce flux de travail, nous fournissons un sous - ensemble de la Firebase C de les SDKs qui peuvent fonctionner sous Windows, Mac OS, Linux, et à partir du C ++ éditeur.

  1. Pour les workflows de bureau, vous devez effectuer les opérations suivantes :

    1. Configurez votre projet C++ pour CMake.
    2. Créer un projet Firebase
    3. Enregistrez votre application (iOS ou Android) avec Firebase
    4. Ajouter un fichier de configuration Firebase pour plate-forme mobile
  2. Créer une version de bureau du fichier de configuration Firebase:

    • Si vous avez ajouté l'Android google-services.json fichier - Lorsque vous exécutez votre application, Firebase localise ce fichier mobile, puis génère automatiquement un fichier de configuration Firebase de bureau ( google-services-desktop.json ).

    • Si vous avez ajouté l'iOS GoogleService-Info.plist fichier - Avant d'exécuter votre application, vous devez convertir ce fichier mobile dans un fichier de configuration Firebase de bureau. Pour convertir le fichier, exécutez la commande suivante dans le même répertoire que votre GoogleService-Info.plist fichier:

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

    Ce fichier de configuration de bureau contient l'ID de projet C++ que vous avez entré dans le workflow de configuration de la console Firebase. Visitez Comprendre Firebase projets pour en savoir plus sur les fichiers de configuration.

  3. Ajoutez des SDK Firebase à votre projet C++.

    Les étapes ci - dessous servent comme un exemple de la façon d'ajouter un produit Firebase pris en charge à votre projet C ++. Dans cet exemple, nous parcourons l'ajout de Firebase Authentication et de Firebase Realtime Database.

    1. Définissez votre FIREBASE_CPP_SDK_DIR variable d'environnement à l'emplacement du décompressé Firebase C ++ SDK.

    2. Pour votre projet de CMakeLists.txt fichier, ajoutez le contenu suivant, y compris les bibliothèques pour les produits que vous Firebase souhaitez utiliser. Par exemple, pour utiliser Firebase Authentication et 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. Exécutez votre application C++.

Bibliothèques disponibles (bureau)

Le Firebase SDK C ++ inclut le soutien de flux de travail de bureau pour un sous - ensemble de fonctionnalités, ce qui permet certaines parties de Firebase à utiliser dans le bureau autonome construit sur Windows, Mac OS, et Linux.

Produit Firebase Références de bibliothèque (à l'aide de CMake)
Authentification firebase_auth
(obligatoire) firebase_app
Cloud Firestore (beta) firebase_firestore
firebase_auth
firebase_app
Fonctions Cloud firebase_functions
(obligatoire) firebase_app
Stockage en ligne firebase_storage
(obligatoire) firebase_app
Base de données en temps réel firebase_database
(obligatoire) firebase_app
Configuration à distance firebase_remote_config
(obligatoire) firebase_app

Firebase fournit les bibliothèques de bureau restantes en tant qu'implémentations stub (non fonctionnelles) pour plus de commodité lors de la création pour Windows, macOS et Linux. Par conséquent, vous n'avez pas besoin de compiler le code de manière conditionnelle pour cibler le bureau.

Bureau de la base de données en temps réel

Le SDK de base de données en temps réel pour le bureau utilise REST pour accéder à votre base de données, vous devez donc déclarer les indices que vous utilisez avec la Query::OrderByChild() sur le bureau ou vos auditeurs échouera.

Informations supplémentaires pour la configuration du bureau

Bibliothèques Windows

Pour Windows, les versions de bibliothèque sont fournies en fonction des éléments suivants :

  • Plate-forme de construction : mode 32 bits (x86) vs 64 bits (x64)
  • Environnement d'exécution Windows : multithread/MT vs multithread DLL/MD
  • Cible : Release vs Debug

Notez que les bibliothèques suivantes ont été testées à l'aide de Visual Studio 2015 et 2017.

Lors de la création d'applications de bureau C++ sur Windows, associez les bibliothèques SDK Windows suivantes à votre projet. Consultez la documentation de votre compilateur pour plus d'informations.

Bibliothèque Firebase C++ Dépendances de la bibliothèque SDK Windows
Authentification advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Fonctions Cloud advapi32, ws2_32, crypt32, rpcrt4, ole32
Stockage en ligne advapi32, ws2_32, crypt32
Base de données en temps réel advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Configuration à distance advapi32, ws2_32, crypt32, rpcrt4, ole32

bibliothèques macOS

Pour macOS (Darwin), des versions de bibliothèque sont fournies pour la plate-forme 64 bits (x86_64). Des cadres sont également fournis pour votre commodité.

Notez que les bibliothèques macOS ont été testées avec Xcode 12.

Lors de la création d'applications de bureau C++ sur macOS, associez les éléments suivants à votre projet :

  • pthread bibliothèque système
  • CoreFoundation cadre du système macOS
  • Foundation cadre du système macOS
  • Security cadre du système macOS
  • GSS cadre du système macOS
  • Kerberos cadre du système macOS
  • SystemConfiguration cadre du système macOS

Consultez la documentation de votre compilateur pour plus d'informations.

Bibliothèques Linux

Pour Linux, des versions de bibliothèque sont fournies pour les plates-formes 32 bits (i386) et 64 bits (x86_64).

Notez que les bibliothèques Linux ont été testées à l'aide de GCC 4.8.0, GCC 7.2.0 et Clang 5.0 sur Ubuntu.

Lors de la construction des applications de bureau de C sur Linux, relier la pthread bibliothèque système à votre projet. Consultez la documentation de votre compilateur pour plus d'informations. Si vous construisez avec GCC 5 ou version ultérieure, définir -D_GLIBCXX_USE_CXX11_ABI=0 .

Prochaines étapes