Améliorez vos jeux C++ grâce à nos SDK Firebase C++, qui fournissent une interface C++ en plus des SDK Firebase.
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 à un langage utilisés par Firebase dans une interface plus familière aux développeurs C++.
Pour en savoir plus sur l'optimisation de vos jeux avec Firebase, consultez notre page sur les jeux Firebase.
Vous avez déjà ajouté Firebase à votre projet C++ ? Assurez-vous d'utiliser la dernière version du SDK C++ Firebase.
Prérequis
Installez l'éditeur ou l'IDE de votre choix, comme Android Studio, IntelliJ ou VS Code.
Obtenez le SDK Android.
Assurez-vous que votre projet répond aux exigences suivantes :
Cible le niveau d'API 24 (Nougat) ou supérieur
Utilise Gradle et est configuré avec CMake.
Configurez un appareil physique ou utilisez un émulateur pour exécuter votre application.
Les émulateurs doivent utiliser une image d'émulateur avec Google Play.
Pour certaines bibliothèques C++, les services Google Play sont requis sur l'appareil client. Consultez la liste sur cette page.
Connectez-vous à Firebase à l'aide de votre compte Google.
Étape 2 : Créer un projet Firebase
Avant d'ajouter Firebase à votre projet C++, vous devez créer un projet Firebase à associer à votre projet C++. Consultez Comprendre les projets Firebase pour en savoir plus sur les projets Firebase.
Étape 3 : Enregistrez votre application auprès de Firebase
Pour utiliser Firebase dans votre application Android, vous devez l'enregistrer dans votre projet Firebase. L'enregistrement de votre application est souvent appelé "ajout" de votre application à votre projet.
Accédez à la consoleFirebase.
Au centre de la page "Vue d'ensemble du projet", cliquez sur l'icône Android () ou sur Ajouter une application pour lancer la configuration.
Saisissez le nom du package de votre application dans le champ Nom du package Android.
(Facultatif) Saisissez un pseudonyme d'application, qui est un identifiant interne pratique, visible uniquement par vous dans la console Firebase.
Cliquez sur Enregistrer l'application.
Étape 4 : Ajoutez le fichier de configuration Firebase
Cliquez sur Télécharger google-services.json pour obtenir votre fichier de configuration Firebase Android.
Ouvrez votre projet C++ dans un IDE, puis ajoutez votre fichier de configuration à votre projet :
Builds Gradle : ajoutez votre fichier de configuration au même répertoire que votre fichier
build.gradlede premier niveau.Autres systèmes de compilation : consultez Systèmes de compilation personnalisés ci-dessous pour générer des ressources de chaîne Android.
(Builds Gradle uniquement) Pour activer les services Firebase dans votre projet C++, ajoutez le plug-in Gradle des services Google à votre fichier
build.gradlede premier niveau.Ajoutez des règles pour inclure le plug-in Gradle des services Google. Vérifiez également que vous disposez du dépôt 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.5.0' // Google services Gradle plugin implementation 'com.google.android.gms:18.11.1' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }Appliquez le plug-in Gradle des services Google :
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google services Gradle plugin android { // ... }
Vous avez terminé les tâches de configuration dans la console Firebase. Passez à la section Ajouter les SDK Firebase C++ ci-dessous.
Étape 5 : Ajouter les SDK Firebase C++
Les étapes de cette section montrent comment ajouter des produits Firebase compatibles à votre projet Firebase C++.
Téléchargez le SDK Firebase C++, puis décompressez-le à l'emplacement de votre choix.
Le SDK Firebase C++ n'est pas spécifique à une plate-forme, mais il contient des bibliothèques spécifiques à une plate-forme.
Dans le fichier
gradle.propertiesde votre projet, spécifiez l'emplacement du SDK décompressé :systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Ajoutez le contenu suivant au fichier
settings.gradlede votre projet :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"
Ajoutez le contenu suivant au fichier Gradle de votre module (au niveau de l'application, généralement
app/build.gradle).
Incluez les dépendances de bibliothèque pour les produits Firebase que vous souhaitez utiliser dans votre application.Analytics activé
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 }
Analytics non activé
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 }
Ajoutez le contenu suivant au fichier
CMakeLists.txtde votre projet.
Incluez les bibliothèques des produits Firebase que vous souhaitez utiliser dans votre application.Analytics 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 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}")
Synchronisez votre application pour veiller à ce que toutes les dépendances disposent des versions nécessaires.
Si vous avez ajouté Analytics, exécutez votre application pour envoyer une confirmation à Firebase indiquant que vous avez bien intégré Firebase. Sinon, vous pouvez ignorer l'étape de validation.
Les journaux de votre appareil afficheront la validation Firebase indiquant que l'initialisation est terminée. Si vous avez exécuté votre application sur un émulateur disposant d'un accès réseau, la console Firebase vous informe que la connexion de votre application est terminée.
Vous êtes fin prêt ! Votre application C++ est enregistrée et configurée pour utiliser les services Firebase.
Bibliothèques disponibles
Pour en savoir plus sur les bibliothèques Firebase C++, consultez la documentation de référence et notre SDK Open Source sur GitHub.
Bibliothèques disponibles pour Android (avec CMake)
Notez que les bibliothèques C++ pour les plates-formes Apple sont listées sur la version de cette page de configuration pour les plates-formes Apple (iOS+).
| Produit Firebase | Références de la bibliothèque ( firebaseCpp.dependenciespour le fichier build.gradle) |
Références de la bibliothèque ( firebase_libspour le fichier CMakeLists.txt) |
|---|---|---|
| Analytics | analytics |
firebase_analytics(obligatoire) firebase_app
|
| App Check | appCheck |
firebase_app_check(obligatoire) firebase_app
|
| Authentication | auth |
firebase_auth(obligatoire) firebase_app
|
| Cloud Firestore | firestore |
firebase_firestore(obligatoire) firebase_auth(obligatoire) firebase_app
|
| Cloud Functions | functions |
firebase_functions(obligatoire) firebase_app
|
| Cloud Messaging | messaging |
firebase_messaging(recommandé) firebase_analytics(obligatoire) firebase_app
|
| Cloud Storage | storage |
firebase_storage(obligatoire) firebase_app
|
| Realtime Database | database |
firebase_database(obligatoire) firebase_app
|
| Remote Config | remoteConfig |
firebase_remote_config(recommandé) firebase_analytics(obligatoire) firebase_app
|
| BIBLIOTHÈQUES OBSOLÈTES OU NON COMPATIBLES | ||
| Dynamic Links | dynamicLinks |
firebase_dynamic_links(recommandé) firebase_analytics(obligatoire) firebase_app
|
Informations supplémentaires pour la configuration mobile
Obtenir des rapports de plantage NDK
Firebase Crashlytics est compatible avec les rapports d'erreur pour les applications utilisant des bibliothèques natives Android. Pour en savoir plus, consultez Obtenir des rapports d'erreur du NDK Android.
Systèmes de compilation personnalisés
Firebase fournit le script generate_xml_from_google_services_json.py pour convertir les ressources google-services.json en ressources .xml que vous pouvez inclure dans votre projet. Ce script applique la même transformation que celle effectuée par le plug-in Gradle des services Google Play lors de la compilation d'applications Android.
Si vous n'utilisez pas Gradle (par exemple, si vous utilisez ndk-build, des makefiles, Visual Studio, etc.), vous pouvez utiliser ce script pour automatiser la génération de ressources de chaîne Android.
ProGuard
De nombreux systèmes de compilation Android utilisent ProGuard pour les compilations en mode Release afin de réduire la taille des applications et de protéger le code source Java.
Si vous utilisez ProGuard, vous devez ajouter les fichiers de libs/android/*.pro correspondant aux bibliothèques Firebase C++ que vous utilisez dans votre configuration ProGuard.
Par exemple, avec Gradle, si vous utilisez Google Analytics, votre fichier build.gradle se présente comme suit :
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 } } }
Exigence concernant les services Google Play
La plupart des bibliothèques Firebase C++ nécessitent que les services Google Play soient installés sur l'appareil Android du client. Si une bibliothèque Firebase C++ renvoie kInitResultFailedMissingDependency lors de l'initialisation, cela signifie que les services Google Play ne sont pas disponibles sur l'appareil client (ce qui signifie qu'ils doivent être mis à jour, réactivés, que les autorisations doivent être corrigées, etc.). La bibliothèque Firebase ne peut pas être utilisée tant que le problème sur l'appareil client n'est pas résolu.
Vous pouvez découvrir pourquoi les services Google Play ne sont pas disponibles sur l'appareil client (et essayer de résoudre le problème) à l'aide des fonctions de google_play_services/availability.h.
Le tableau suivant indique si les services Google Play sont requis sur un appareil client pour chaque produit Firebase compatible.
| Bibliothèque Firebase C++ | Les services Google Play sont-ils requis sur l'appareil client ? |
|---|---|
| Analytics | Non requis |
| Authentication | Requis |
| Cloud Firestore | Obligatoire |
| Cloud Functions | Obligatoire |
| Cloud Messaging | Obligatoire |
| Cloud Storage | Obligatoire |
| Dynamic Links | Obligatoire |
| Realtime Database | Obligatoire |
| Remote Config | Obligatoire |
Configurer un workflow de bureau (bêta)
Lorsque vous créez un jeu, il est souvent beaucoup plus facile de le tester d'abord 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 workflow, nous fournissons un sous-ensemble des SDK Firebase C++ qui peuvent s'exécuter sous Windows, macOS, Linux et dans l'éditeur C++.
Pour les workflows pour ordinateur, vous devez effectuer les opérations suivantes :
- Configurez votre projet C++ pour CMake.
- Créer un projet Firebase
- Enregistrer votre application (iOS ou Android) auprès de Firebase
- Ajouter un fichier de configuration Firebase pour une plate-forme mobile
Créez une version pour ordinateur du fichier de configuration Firebase :
Si vous avez ajouté le fichier Android
google-services.json: lorsque vous exécutez votre application, Firebase localise ce fichier mobile, puis génère automatiquement un fichier de configuration Firebase pour ordinateur (google-services-desktop.json).Si vous avez ajouté le fichier iOS
GoogleService-Info.plist: avant d'exécuter votre application, vous devez convertir ce fichier mobile en fichier de configuration Firebase pour ordinateur. Pour convertir le fichier, exécutez la commande suivante à partir du même répertoire que votre fichierGoogleService-Info.plist:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Ce fichier de configuration de bureau contient l'ID du projet C++ que vous avez saisi dans le workflow de configuration de la console Firebase. Pour en savoir plus sur les fichiers de configuration, consultez Comprendre les projets Firebase.
Ajoutez les SDK Firebase à votre projet C++.
Les étapes ci-dessous montrent comment ajouter un produit Firebase compatible à votre projet C++. Dans cet exemple, nous allons ajouter Firebase Authentication et Firebase Realtime Database.
Définissez votre variable d'environnement
FIREBASE_CPP_SDK_DIRsur l'emplacement du SDK Firebase C++ décompressé.Ajoutez le contenu suivant au fichier
CMakeLists.txtde votre projet, y compris les bibliothèques des produits Firebase que vous 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}")
Exécutez votre application C++.
Bibliothèques disponibles (ordinateur)
Le SDK Firebase C++ inclut la compatibilité avec le workflow pour ordinateur pour un sous-ensemble de fonctionnalités, ce qui permet d'utiliser certaines parties de Firebase dans des builds autonomes pour ordinateur sous Windows, macOS et Linux.
| Produit Firebase | Références de bibliothèque (avec CMake) |
|---|---|
| App Check |
firebase_app_check(obligatoire) firebase_app
|
| Authentication |
firebase_auth(obligatoire) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_app
|
| Cloud Functions |
firebase_functions(obligatoire) firebase_app
|
| Cloud Storage |
firebase_storage(obligatoire) firebase_app
|
| Realtime Database |
firebase_database(obligatoire) firebase_app
|
| Remote Config |
firebase_remote_config(obligatoire) firebase_app
|
Firebase fournit les autres bibliothèques pour ordinateur sous forme d'implémentations de bouchon (non fonctionnelles) pour faciliter la compilation pour Windows, macOS et Linux. Par conséquent, vous n'avez pas besoin de compiler le code de manière conditionnelle pour cibler l'ordinateur.
Realtime Database ordinateur
Le SDK Realtime Database pour ordinateur utilise REST pour accéder à votre base de données. Vous devez donc déclarer les index que vous utilisez avec Query::OrderByChild() sur ordinateur, sinon vos écouteurs échoueront.
Informations supplémentaires pour la configuration sur ordinateur
Bibliothèques Windows
Pour Windows, les versions de la bibliothèque sont fournies en fonction des éléments suivants :
- Plate-forme de compilation : mode 32 bits (x86) ou 64 bits (x64)
- Environnement d'exécution Windows : Multithreaded / MT vs Multithreaded DLL /MD
- Cible : Release ou Debug
Notez que les bibliothèques suivantes ont été testées avec Visual Studio 2015 et 2017.
Lorsque vous créez des applications de bureau C++ sous Windows, associez les bibliothèques du SDK Windows suivantes à votre projet. Pour en savoir plus, consultez la documentation de votre compilateur.
| Bibliothèque Firebase C++ | Dépendances de la bibliothèque du SDK Windows |
|---|---|
| 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 |
Bibliothèques macOS
Pour macOS (Darwin), des versions de bibliothèque sont fournies pour la plate-forme 64 bits (x86_64). Des frameworks sont également fournis pour plus de commodité.
Notez que les bibliothèques macOS ont été testées avec Xcode 26.2.
Lorsque vous créez des applications de bureau C++ sur macOS, associez les éléments suivants à votre projet :
- Bibliothèque système
pthread CoreFoundationFramework système macOSFoundationframework système macOSSecurityframework système macOSGSSframework système macOSKerberosframework système macOSSystemConfigurationframework système macOS
Pour en savoir plus, consultez la documentation de votre compilateur.
Bibliothèques Linux
Pour Linux, les versions de la 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 avec GCC 4.8.0, GCC 7.2.0 et Clang 5.0 sur Ubuntu.
Lorsque vous créez des applications de bureau C++ sur Linux, associez la bibliothèque système pthread à votre projet. Pour en savoir plus, consultez la documentation de votre compilateur. Si vous compilez avec GCC 5 ou une version ultérieure, définissez -D_GLIBCXX_USE_CXX11_ABI=0.
Étapes suivantes
Découvrez des exemples d'applications Firebase.
Découvrez le SDK Open Source sur GitHub.
Préparez-vous à lancer votre application :
- Configurez des alertes de budget pour votre projet dans la console Google Cloud.
- Surveillez le tableau de bord Utilisation et facturation dans la console Firebase pour obtenir une vue d'ensemble de l'utilisation de votre projet dans plusieurs services Firebase.
- Consultez la checklist de lancement de Firebase.