Améliorez vos jeux C++ avec nos SDK Firebase C++ qui fournissent une interface C++ au-dessus des SDK Firebase.
Accédez à Firebase entièrement à partir de votre code C++, sans avoir à écrire de code natif de la plateforme. Le SDK Firebase traduit également de nombreux langages spécifiques au langage utilisés par Firebase en une interface plus familière aux développeurs C++.
Découvrez plus d'informations sur la mise à niveau de vos jeux avec Firebase sur notre page de jeux Firebase .
Vous avez déjà ajouté Firebase à votre projet C++ ? Assurez-vous que vous utilisez la dernière version du SDK Firebase C++ .
Conditions préalables
Installez votre éditeur ou IDE préféré, tel qu'Android Studio, IntelliJ ou VS Code.
Obtenez le SDK Android .
Assurez-vous que votre projet répond à ces exigences :
Cible le niveau d'API 19 (KitKat) 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 de pouvoir ajouter Firebase à votre projet C++, vous devez créer un projet Firebase pour vous connecter à 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 enregistrer votre application avec votre projet Firebase. L'enregistrement de votre application est souvent appelé « ajouter » votre application à votre projet.
Accédez à la console Firebase .
Au centre de la page de présentation du projet, cliquez sur l'icône Android (
) ou sur Ajouter une application pour lancer le workflow de configuration.Saisissez le nom du package de votre application dans le champ Nom du package Android .
Un nom de package identifie de manière unique votre application sur l'appareil et dans le Google Play Store.
Un nom de package est souvent appelé ID d'application .
Recherchez le nom du package de votre application dans le fichier Gradle de votre module (au niveau de l'application), généralement
app/build.gradle
(exemple de nom de package :com.yourcompany.yourproject
).Sachez que la valeur du nom du package est sensible à la casse et qu'elle ne peut pas être modifiée pour cette application Firebase Android une fois qu'elle est enregistrée dans votre projet Firebase.
(Facultatif) Saisissez d'autres informations sur l'application : pseudonyme de l'application et certificat de signature de débogage SHA-1 .
Pseudonyme de l'application : un identifiant interne pratique qui n'est visible que par vous dans la console Firebase
Certificat de signature de débogage SHA-1 : un hachage SHA-1 est requis par l'authentification Firebase (lors de l'utilisation de la connexion Google ou de la connexion par numéro de téléphone ) et des liens dynamiques 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.
Le fichier de configuration Firebase contient des identifiants uniques mais non secrets pour votre projet. Pour en savoir plus sur ce fichier de configuration, visitez Comprendre les projets Firebase .
Vous pouvez télécharger à nouveau votre fichier de configuration Firebase à tout moment.
Assurez-vous que le nom du fichier de configuration n'est pas suivi de caractères supplémentaires, comme
(2)
.
Ouvrez votre projet C++ dans un IDE, puis ajoutez votre fichier de configuration à votre projet :
Gradle builds — Ajoutez votre fichier de configuration dans le même répertoire que votre fichier
build.gradle
de niveau supérieur.Autres systèmes de build – Voir Systèmes de build 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 plugin google-services à votre fichier
build.gradle
de niveau supérieur.Ajoutez des règles pour inclure le plugin 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.4.1' // Google Services plugin implementation 'com.google.android.gms:18.3.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Appliquez le plugin Google Services Gradle :
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Vous avez terminé la configuration des tâches dans la console Firebase. Continuez à ajouter des SDK Firebase C++ ci-dessous.
Étape 5 : ajouter des SDK Firebase C++
Les étapes de cette section sont un exemple de la façon d'ajouter des produits Firebase pris en charge à votre projet Firebase C++.
Téléchargez le SDK Firebase C++ , puis décompressez le SDK dans un 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.
Dans le fichier
gradle.properties
de votre projet, spécifiez l'emplacement du SDK décompressé :systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Au fichier
settings.gradle
de votre projet, ajoutez le contenu suivant :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"
Au fichier Gradle de votre module (au niveau de l'application) (généralement
app/build.gradle
), ajoutez le contenu suivant.
Incluez les dépendances de bibliothèque pour les produits Firebase que vous souhaitez utiliser dans votre application.Analyse activée
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 }
Analyse non activée
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 }
Au fichier
CMakeLists.txt
de votre projet, ajoutez le contenu suivant.
Incluez les bibliothèques des produits Firebase que vous souhaitez utiliser dans votre application.Analyse 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}")
Analyse non 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 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 vous assurer que toutes les dépendances disposent des versions nécessaires.
Si vous avez ajouté Analytics, exécutez votre application pour envoyer à Firebase la vérification que vous avez correctement intégré Firebase. Sinon, vous pouvez ignorer l'étape de vérification.
Les journaux de votre appareil afficheront la vérification Firebase indiquant que l'initialisation est terminée. Si vous avez exécuté votre application sur un émulateur disposant d'un accès au réseau, la console Firebase vous informe que la connexion de votre 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
Apprenez-en plus sur les bibliothèques C++ Firebase dans la documentation de référence et dans notre version open source du SDK sur GitHub .
Bibliothèques disponibles pour Android (en utilisant CMake)
Notez que les bibliothèques C++ pour les plates-formes Apple sont répertoriées dans la version des plates-formes Apple (iOS+) de cette page de configuration .
Produit Firebase | Références de la bibliothèque ( firebaseCpp.dependencies pour le fichier build.gradle ) | Références de la bibliothèque ( firebase_libs pour le fichier CMakeLists.txt ) |
---|---|---|
AdMob | admob | firebase_admob (obligatoire) firebase_analytics (obligatoire) firebase_app |
Analytique | analytics | firebase_analytics (obligatoire) firebase_app |
Vérification de l'application | appCheck | firebase_app_check (obligatoire) firebase_app |
Authentification | auth | firebase_auth (obligatoire) firebase_app |
Cloud Firestore | firestore | firebase_firestore (obligatoire) firebase_auth (obligatoire) firebase_app |
Fonctions cloud | functions | firebase_functions (obligatoire) firebase_app |
Messagerie cloud | messaging | firebase_messaging (recommandé) firebase_analytics (obligatoire) firebase_app |
Stockage en ligne | storage | firebase_storage (obligatoire) firebase_app |
Liens dynamiques | dynamicLinks | firebase_dynamic_links (recommandé) firebase_analytics (obligatoire) firebase_app |
Base de données en temps réel | database | firebase_database (obligatoire) firebase_app |
Configuration à distance | remoteConfig | firebase_remote_config (recommandé) firebase_analytics (obligatoire) firebase_app |
Informations supplémentaires pour la configuration mobile
Obtenez des rapports d'erreur NDK
Firebase Crashlytics prend en charge les rapports d'incidents pour les applications utilisant les 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
en ressources .xml
que vous pouvez inclure dans votre projet. Ce script applique la même transformation que celle effectuée par le plugin Gradle des services Google Play lors de la création d'applications Android.
Si vous ne construisez pas à l'aide de Gradle (par exemple, vous utilisez ndk-build, 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 build Android utilisent ProGuard pour les builds en mode Release afin de réduire la taille des applications et de protéger le code source Java.
Si vous utilisez ProGuard, vous devrez ajouter les fichiers dans 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
ressemblera à :
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 des services Google Play
La plupart des bibliothèques Firebase C++ nécessitent que les services Google Play soient présents 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'il doit être mis à jour, réactivé, les autorisations corrigées, 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 découvrir pourquoi les services Google Play ne sont pas disponibles sur l'appareil client (et essayer de le réparer) en utilisant les 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 pris en charge.
Bibliothèque Firebase C++ | Services Google Play requis sur l'appareil client ? |
---|---|
AdMob | Non requis (généralement) |
Analytique | Non requis |
Authentification | Requis |
Cloud Firestore | Requis |
Fonctions cloud | Requis |
Messagerie cloud | Requis |
Stockage en ligne | Requis |
Liens dynamiques | Requis |
Base de données en temps réel | Requis |
Configuration à distance | Requis |
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 la dépendance com.google.android.gms:play-services-ads-lite
, au lieu de la dépendance standard com.google.firebase:firebase-ads
répertoriée ci-dessus, les services Google Play sont requis .
L'initialisation d'AdMob ne renvoie kInitResultFailedMissingDependency
que lorsque les deux conditions suivantes sont vraies :
- Les services Google Play ne sont pas disponibles sur l'appareil client.
- Vous utilisez
com.google.android.gms:play-services-ads-lite
.
Configurer un workflow 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 au cours du développement. Pour prendre en charge ce flux de travail, nous fournissons un sous-ensemble de SDK Firebase C++ qui peuvent s'exécuter sur Windows, macOS, Linux et depuis l'éditeur C++.
Pour les workflows de bureau, vous devez effectuer les opérations suivantes :
- Configurez votre projet C++ pour CMake.
- Créer un projet Firebase
- Enregistrez votre application (iOS ou Android) avec Firebase
- Ajouter un fichier de configuration Firebase pour plate-forme mobile
Créez une version de bureau 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 de bureau (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 de bureau . 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 de projet C++ que vous avez saisi dans le workflow de configuration de la console Firebase. Consultez Comprendre les projets Firebase pour en savoir plus sur les fichiers de configuration.
Ajoutez des SDK Firebase à votre projet C++.
Les étapes ci-dessous servent d'exemple pour ajouter un produit Firebase pris en charge à votre projet C++. Dans cet exemple, nous passons en revue l'ajout de l'authentification Firebase et de la base de données en temps réel Firebase.
Définissez votre variable d'environnement
FIREBASE_CPP_SDK_DIR
sur l'emplacement du SDK Firebase C++ décompressé.Au fichier
CMakeLists.txt
de votre projet, ajoutez le contenu suivant, y compris les bibliothèques des produits Firebase que vous souhaitez utiliser. Par exemple, pour utiliser l'authentification Firebase et la base de données Firebase Realtime :# 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 de bureau)
Le SDK Firebase C++ inclut la prise en charge des flux de travail de bureau pour un sous-ensemble de fonctionnalités, permettant à certaines parties de Firebase d'être utilisées dans des versions de bureau autonomes sur Windows, macOS et Linux.
Produit Firebase | Références de bibliothèque (en utilisant CMake) |
---|---|
Vérification de l'application | firebase_app_check (obligatoire) firebase_app |
Authentification | firebase_auth (obligatoire) firebase_app |
Cloud Firestore | 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 sous forme d'implémentations de 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 du code de manière conditionnelle pour cibler le bureau.
Bureau de base de données en temps réel
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 du bureau
Bibliothèques Windows
Pour Windows, les versions de bibliothèque sont fournies en fonction des éléments suivants :
- Plateforme de construction : mode 32 bits (x86) vs 64 bits (x64)
- Environnement d'exécution Windows : multithread/MT vs DLL/MD multithread
- Cible : version vs débogage
Notez que les bibliothèques suivantes ont été testées avec Visual Studio 2015 et 2017.
Lors de la création d’applications de bureau C++ sur Windows, liez les bibliothèques du 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 du SDK Windows |
---|---|
Vérification de l'application | advapi32, ws2_32, crypt32 |
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 plateforme 64 bits (x86_64). Des cadres sont également fournis pour votre commodité.
Notez que les bibliothèques macOS ont été testées avec Xcode 13.3.1.
Lorsque vous créez des applications de bureau C++ sur macOS, associez les éléments suivants à votre projet :
- bibliothèque système
pthread
- Cadre système
CoreFoundation
macOS - Cadre du système
Foundation
macOS - Cadre du système
Security
macOS - Cadre du système
GSS
macOS - Cadre système
Kerberos
macOS - Structure du système
SystemConfiguration
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 avec GCC 4.8.0, GCC 7.2.0 et Clang 5.0 sur Ubuntu.
Lors de la création d'applications de bureau C++ sous Linux, liez la bibliothèque système pthread
à votre projet. Consultez la documentation de votre compilateur pour plus d'informations. Si vous construisez avec GCC 5 ou version ultérieure, définissez -D_GLIBCXX_USE_CXX11_ABI=0
.
Prochaines étapes
Découvrez des exemples d'applications Firebase .
Explorez le SDK open source dans GitHub .
Préparez-vous à lancer votre application :
- Configurez des alertes budgétaires pour votre projet dans la console Google Cloud.
- Surveillez le tableau de bord d'utilisation et de facturation dans la console Firebase pour obtenir une image globale de l'utilisation de votre projet sur plusieurs services Firebase.
- Consultez la liste de contrôle de lancement de Firebase .