Ajoutez Firebase à votre projet C++

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 les éléments suivants :

    • Xcode 13.3.1 ou version ultérieure
    • CocoaPods 1.12.0 ou version ultérieure
  • Assurez-vous que votre projet cible les versions de plateforme suivantes ou ultérieures :

    • iOS 11
    • tvOS 12
  • Configurez un appareil physique ou utilisez le simulateur pour exécuter votre application.

  • 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 Apple, vous devez enregistrer votre application auprès de votre projet Firebase. L'enregistrement de votre application est souvent appelé « ajouter » votre application à votre projet.

  1. Accédez à la console Firebase .

  2. Au centre de la page de présentation du projet, cliquez sur l'icône iOS+ pour lancer le workflow de configuration.

    Si vous avez déjà ajouté une application à votre projet Firebase, cliquez sur Ajouter une application pour afficher les options de la plateforme.

  3. Saisissez l'ID du bundle de votre application dans le champ ID du bundle .

  4. (Facultatif) Saisissez d'autres informations sur l'application : pseudonyme de l'application et identifiant App Store .

  5. Cliquez sur Enregistrer l'application .

Étape 4 : Ajoutez le fichier de configuration Firebase

  1. Cliquez sur Télécharger GoogleService-Info.plist pour obtenir le fichier de configuration de votre plate-forme Firebase Apple.

  2. Ouvrez votre projet C++ dans un IDE, puis faites glisser votre fichier de configuration à la racine de votre projet C++.

  3. Si vous y êtes invité, choisissez d'ajouter le fichier de configuration à toutes les cibles.

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++.

  1. 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.

  2. Ajoutez des pods Firebase à partir du SDK décompressé.

    1. Créez un Podfile si vous n'en avez pas déjà un :

      cd your-app-directory
      pod init

    2. À votre Podfile, ajoutez les pods Firebase que vous souhaitez utiliser dans votre application.

      Analyse activée

      # Add the Firebase pod for Google Analytics
      pod 'FirebaseAnalytics'
      # 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 'FirebaseAuth' pod 'FirebaseDatabase'

      Analyse non activée

      # 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 'FirebaseAuth'
      pod 'FirebaseDatabase'
    3. Installez les pods, puis ouvrez le fichier .xcworkspace dans Xcode.

      pod install
      open your-app.xcworkspace

  3. Ajoutez des frameworks Firebase à partir du SDK décompressé.

    Le moyen le plus simple d'ajouter ces frameworks consiste généralement à les faire glisser depuis une fenêtre Finder directement dans le volet Navigateur de projet de Xcode (le volet le plus à gauche, par défaut ; ou à cliquer sur l'icône de fichier en haut à gauche de Xcode).

    1. Ajoutez le framework Firebase C++ firebase.framework , qui est requis pour utiliser n'importe quel produit Firebase.

    2. Ajoutez le framework pour chaque produit Firebase que vous souhaitez utiliser. Par exemple, pour utiliser l'authentification Firebase, ajoutez firebase_auth.framework .

  4. De retour dans la console Firebase, dans le workflow de configuration, cliquez sur Suivant .

  5. 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 cette é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 produits 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 les plateformes Apple

Notez que les bibliothèques C++ pour Android sont répertoriées sur la version Android de cette page de configuration .

Chaque produit Firebase a des dépendances différentes. Assurez-vous d'ajouter toutes les dépendances répertoriées pour le produit Firebase souhaité à votre projet Podfile et C++.

Chaque produit Firebase ne peut prendre en charge qu'une sélection de plates-formes Apple OS (iOS, tvOS, etc.). Vérifiez quelles plates-formes sont prises en charge par chaque bibliothèque dans En savoir plus sur C++ et Firebase .

Produit Firebase Frameworks et pods
AdMob (obligatoire) firebase.framework
firebase_admob.framework
(obligatoire) firebase_analytics.framework

pod 'FirebaseAdMob', '10.22.0'
(obligatoire) pod 'FirebaseAnalytics', '10.22.0'
Analytique (obligatoire) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.22.0'
Vérification de l'application (obligatoire) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.22.0'
Authentification (obligatoire) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.22.0'
Cloud Firestore (obligatoire) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.22.0'
pod 'FirebaseAuth', '10.22.0'
Fonctions cloud (obligatoire) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.22.0'
Messagerie cloud (obligatoire) firebase.framework
firebase_messaging.framework
(recommandé) firebase_analytics.framework

pod 'FirebaseMessaging', '10.22.0'
(recommandé) pod 'FirebaseAnalytics', '10.22.0'
Stockage en ligne (obligatoire) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.22.0'
Liens dynamiques (obligatoire) firebase.framework
firebase_dynamic_links.framework
(recommandé) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.22.0'
(recommandé) pod 'FirebaseAnalytics', '10.22.0'
Base de données en temps réel (obligatoire) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.22.0'
Configuration à distance (obligatoire) firebase.framework
firebase_remote_config.framework
(recommandé) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.22.0'
(recommandé) pod 'FirebaseAnalytics', '10.22.0'

Informations supplémentaires pour la configuration mobile

Méthode tourbillonnante

Sur iOS, certains événements d'application (tels que l'ouverture d'URL et la réception de notifications) nécessitent que votre délégué d'application implémente des méthodes spécifiques. Par exemple, la réception d'une notification peut nécessiter que votre délégué d'application implémente application:didReceiveRemoteNotification: . Étant donné que chaque application iOS possède son propre délégué d'application, Firebase utilise la méthode swizzling , qui permet le remplacement d'une méthode par une autre, pour attacher ses propres gestionnaires en plus de ceux que vous pourriez avoir implémentés.

Les bibliothèques Dynamic Links et Cloud Messaging doivent attacher des gestionnaires au délégué d'application à l'aide de la méthode swizzling. Si vous utilisez l'un de ces produits Firebase, au moment du chargement, Firebase identifiera votre classe AppDelegate et y appliquera les méthodes requises, enchaînant un rappel à l'implémentation de votre méthode existante.

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++.

  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é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 fichier GoogleService-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.

  3. 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.

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

    2. 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}")
      
  4. 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