Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Ajoutez Firebase à votre projet Unity

Améliorez vos jeux Unity avec nos SDK Firebase Unity.

Pour montrer à quel point il est facile de connecter Firebase à votre projet Unity, nous avons créé un exemple de jeu, MechaHamster, que vous pouvez télécharger depuis GitHub , l' App Store et le Google Play Store .

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Pour plus d'informations sur la mise sous tension de vos jeux avec Firebase, consultez notre page de jeux Firebase .

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

Conditions préalables

  • Installez Unity 5.3 ou version ultérieure.

  • (iOS uniquement) Installez les éléments suivants:

    • Xcode 9.4.1 ou version ultérieure
    • CocoaPods 1.4.0 ou version ultérieure
  • Assurez-vous que votre projet Unity répond à ces exigences:

    • Pour iOS - cible iOS 8 ou version ultérieure
    • Pour Android - cible le niveau d'API 16 (Jelly Bean) ou supérieur
  • Configurez un appareil physique ou utilisez un émulateur pour exécuter votre application.

    • Pour iOS - Configurez un appareil iOS physique ou utilisez le simulateur iOS.

    • Pour Android - Les émulateurs doivent utiliser une image d'émulateur avec Google Play.

Si vous n'avez pas encore de projet Unity et que vous souhaitez simplement essayer un produit Firebase, vous pouvez télécharger l'un de nos exemples de démarrage rapide .

Étape 1 : créer un projet Firebase

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

Étape 2 : enregistrez votre application avec Firebase

Vous pouvez enregistrer une ou plusieurs applications ou jeux pour vous connecter à votre projet Firebase.

  1. Accédez à la console Firebase .

  2. Au centre de la page de du projet, cliquez sur l'icône Unity ( ) 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 plate-forme.

  3. Sélectionnez la cible de construction de votre projet Unity que vous souhaitez enregistrer, ou vous pouvez même choisir d'enregistrer les deux cibles maintenant en même temps.

  4. Saisissez les identifiants spécifiques à la plate-forme de votre projet Unity.

    • Pour iOS - Saisissez l'ID iOS de votre projet Unity dans le champ ID du bundle iOS .

    • Pour Android : saisissez l'ID Android de votre projet Unity dans le champ du nom du package Android .
      Les termes nom de package et ID d'application sont souvent utilisés de manière interchangeable.

  5. (Facultatif) Saisissez le ou les surnoms spécifiques à la plate-forme de votre projet Unity.
    Ces pseudonymes sont des identifiants internes et pratiques et ne sont visibles que par vous dans la console Firebase.

  6. Cliquez sur Enregistrer l'application .

Étape 3 : Ajouter les fichiers de configuration Firebase

  1. Obtenez vos fichiers de configuration Firebase spécifiques à la plate-forme dans le workflow de configuration de la console Firebase.

    • Pour iOS - Cliquez sur Télécharger GoogleService-Info.plist .

    • Pour Android - Cliquez sur Télécharger google-services.json .

  2. Ouvrez la fenêtre Projet de votre projet Unity, puis déplacez vos fichiers de configuration dans le dossier Assets .

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

Étape 4 : Ajouter des SDK Firebase Unity

Vous pouvez ajouter des produits Firebase pris en charge à votre projet Unity à l'aide du gestionnaire de packages Unity , ou vous pouvez installer les SDK manuellement.

Gestionnaire de packages Unity

Si vous utilisez Unity 2018.4 ou version plus récente et .NET 4.x ou .NET Standard 2.0, vous pouvez installer les composants du SDK Firebase à l'aide du gestionnaire de packages Unity:

  1. Ajoutez le registre de packages de jeu de Google à votre projet Unity.

    • Si vous n'avez jamais importé le SDK Firebase et EDM4U (anciennement appelé Play Services Resolver) auparavant, vous pouvez ajouter manuellement le bloc suivant à Packages/manifest.json .

      "scopedRegistries": [
        {
          "name": "Game Package Registry by Google",
          "url": "https://unityregistry-pa.googleapis.com",
          "scopes": [
            "com.google"
          ]
        }
      ]
      

      Notez que certains autres SDK, tels que le SDK Facebook, peuvent contenir EDM4U dans leur .unitypackage . Vérifiez si les dossiers Assets/ExternalDependencyManager ou Assets/PlayServicesResolver existent. Si ces dossiers existent, supprimez-les avant d'installer un SDK Firebase via Unity Package Manager.

    • Si vous avez besoin de migrer un SDK existant ou préférez une méthode plus interactive, importez le dernier gestionnaire de dépendances externes pour Unity (EDM4U) .

      Le résolveur Unity Package Manager vous invite à ajouter le registre de packages de jeu de Google à votre projet. Sélectionnez le registre et cliquez sur le bouton Ajouter les registres sélectionnés .

      • EDM4U ajoute le registre à Packages/manifest.json sous votre dossier de projet Unity actuel.

      • Vous pouvez également ajouter manuellement ce registre plus tard en utilisant les options de menu Actifs > Gestionnaire de dépendances externes > Unity Package Manager Resolver > Ajouter des registres ou Fenêtre > Google > Registre de packages de jeu > Ajouter au projet .

  2. Migrez les packages Firebase et EDM4U existants importés via .unitypackage vers Unity Package Manager. Cela peut être fait par l'une des méthodes suivantes.

    • Une fois le registre ajouté par EDM4U, une boîte de dialogue intitulée «Migrating Packages» devrait apparaître. Cette boîte de dialogue répertorie tous les packages disponibles pour être installés via Unity Package Manager. Nous vous recommandons de les sélectionner tous et de cliquer sur le bouton Appliquer .

    • Vous pouvez également afficher manuellement cette boîte de dialogue ultérieurement en utilisant Actifs > Gestionnaire de dépendances externes > Résolveur de Unity Package Manager > Migrer les packages .

    • Vous pouvez également migrer manuellement tous les packages importés via .unitypackage en .unitypackage comme suit.

      1. Supprimez à la fois le SDK Firebase Unity et EDM4U de votre dossier Assets . EDM4U fournit un outil pour désinstaller les packages gérés qui est accessible à l'aide de l'option de menu Assets > External Dependency Manager > Version Handler > Uninstall Managed Packages . Sélectionnez tous les SDK Firebase ainsi que External Dependency Manager et cliquez sur Désinstaller les packages sélectionnés .

        • Vous pouvez également supprimer manuellement le SDK du dossier Assets .
      2. Installez les composants du SDK Firebase Unity à l'aide du gestionnaire de packages Unity en sélectionnant Fenêtre > Gestionnaire de packages et en recherchant Firebase . Les composants du SDK Firebase Unity peuvent être installés, améliorés et supprimés via cette interface.

  3. Vous pouvez désormais explorer et installer tous les composants du SDK Firebase Unity ou les packages Google à l'aide du gestionnaire de packages Unity en sélectionnant Fenêtre > Gestionnaire de packages . Tous ces composants peuvent être installés, modifiés et supprimés via cette interface.

Installation manuelle

  1. Dans la console Firebase, cliquez sur Télécharger le SDK Firebase Unity , puis décompressez le SDK à un endroit pratique.

    • Vous pouvez télécharger à nouveau le SDK Firebase Unity à tout moment.

    • Le SDK Firebase Unity n'est pas spécifique à la plate-forme.

  2. Dans votre projet Unity ouvert, accédez à Assets > Importer un package > Package personnalisé .

  3. À partir du SDK décompressé, sélectionnez les produits Firebase pris en charge que vous souhaitez utiliser dans votre application.

    Analytics activé

    • Ajoutez le package Firebase pour Google Analytics: FirebaseAnalytics.unitypackage
    • Ajoutez les packages pour tous les autres produits Firebase que vous souhaitez utiliser dans votre application. Par exemple, pour utiliser l'authentification Firebase et la base de données Firebase Realtime:
      FirebaseAuth.unitypackage et FirebaseDatabase.unitypackage

    Analytics non activé

    Ajoutez les packages des produits Firebase que vous souhaitez utiliser dans votre application. Par exemple, pour utiliser l'authentification Firebase et la base de données Firebase Realtime:
    FirebaseAuth.unitypackage et FirebaseDatabase.unitypackage

  4. Dans la fenêtre Importer un package Unity , cliquez sur Importer .

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

Étape 5 : Confirmez les exigences de version des services Google Play

Le SDK Firebase Unity pour Android nécessite les services Google Play , qui doivent être à jour avant que le SDK puisse être utilisé.

Ajoutez le code suivant au démarrage de votre application. Vous pouvez rechercher et éventuellement mettre à jour les services Google Play vers la version requise par le SDK Firebase Unity avant d'appeler toute autre méthode du SDK.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

Vous êtes prêt! Votre projet Unity est enregistré et configuré pour utiliser Firebase.

Problèmes connus

Compatibilité .NET lors de l'utilisation de Unity 2017.x et versions ultérieures

Firebase prend en charge .NET 4.x en tant qu'option de génération expérimentale dans Unity 2017 et versions ultérieures. Les plug-ins Firebase utilisent des composants du SDK Parse pour fournir certaines classes .NET 4.x dans les versions antérieures de .NET.

Par conséquent, la version 5.4.0 SDK Firebase Unity et les versions ultérieures fournissent des plugins compatibles avec .NET 3.x ou .NET 4.x dans les dotnet3 et dotnet4 du SDK Firebase Unity.

Si vous importez un plug-in Firebase incompatible avec la version .NET activée dans votre projet, vous verrez des erreurs de compilation de certains types dans le framework .NET qui sont implémentés par le SDK Parse.

Pour résoudre l'erreur de compilation, si vous utilisez .NET 3.x:

  1. Supprimez ou désactivez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Activez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Pour résoudre l'erreur de compilation, si vous utilisez .NET 4.x:

  1. Supprimez ou désactivez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Activez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Si vous importez un autre plugin Firebase:

  • Dans votre projet Unity, accédez à Assets > Play Services Resolver > Version Handler > Update pour activer les DLL appropriées pour votre projet.

Compilation d'IL2CPP Unity 2017.1 dans les projets .NET 4.x

Firebase prend en charge .NET 4.x en tant qu'option de génération expérimentale dans Unity 2017 et versions ultérieures. Les plug-ins Firebase utilisent des composants du SDK Parse pour fournir certaines classes .NET 4.x dans les versions antérieures de .NET.

Par conséquent, le SDK Firebase Unity version 5.4.0 et versions ultérieures fournit des DLL de transfert de type qui transfèrent les types Parse (par exemple, l'implémentation Parse de System.Threading.Tasks.Task ) vers le framework .NET. Malheureusement, IL2CPP (un transpilateur qui convertit C # en C ++) fourni dans Unity 2017.1.x ne traite pas correctement les DLL de transfert de type, ce qui entraîne des erreurs de construction semblables aux suivantes:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

Il n'y a actuellement aucune solution de contournement disponible pour les erreurs de génération .NET 4.x IL2CPP dans Unity 2017.1, vous devez donc mettre à niveau vers Unity 2017.2 ou version ultérieure pour utiliser .NET 4.x dans les projets compilés avec IL2CPP.

Réseau Unity 2017.2

Firebase Realtime Database crée des connexions réseau TLS à l'aide de la pile réseau .NET. La fonctionnalité TLS est interrompue dans Unity 2017.2 lors de l'utilisation de .NET 4.6, provoquant l'échec du plug-in Realtime Database dans les éditeurs et sur le bureau.

Il n'existe pas de solution de contournement pour ce problème, vous devez donc utiliser une version différente de Unity, par exemple la version 2017.1 ou 2017.3.

Fichier de configuration Android Firebase manquant dans Unity 2020.

Afin de prendre en charge les versions d'Unity qui n'ont pas la possibilité de personnaliser la version Gradle, l'outil d'édition Firebase génère Assets/Plugins/Android/Firebase/res/values/google-services.xml tant que ressource Android à conditionner dans un Version Android, afin que le SDK Firebase puisse l'utiliser pour initialiser l'instance FirebaseApp par défaut.

Dans Unity 2020, toutes les ressources Android doivent se trouver dans des répertoires avec un suffixe .androidlib . Si votre projet utilise un SDK Firebase qui génère un répertoire Assets/Plugins/Android/Firebase , renommez-le Assets/Plugins/Android/Firebase.androidlib . Assurez-vous qu'il contient AndroidManifest.xml , project.properties et res/values/google-services.xml .

Conflit d'installation lors de l'utilisation du gestionnaire de packages Unity

Un package peut être installé à partir de différentes sources. Par exemple, External Dependency Manager for Unity ( EDM4U en abrégé, précédemment appelé Play Services Resolver ou Unity Jar Resolver) peut être installé de l'une des manières suivantes.

  • Importation du .unitypackage External Dependency Manager.
  • Importation du SDK Firebase ou d'un autre SDK contenant EDM4U dans leur .unitypackage .
  • Installation de External Dependency Manager via Unity Package Manager
  • Installation du SDK Firebase ou d'un autre SDK qui définit EDM4U comme sa dépendance via Unity Package Manager .

Lorsque EDM4U est installé via .unitypackage et via Unity Package Manager en même temps, il existe un conflit d'installation et Unity peut afficher une erreur concernant un conflit de GUID ou un conflit de symboles. EDM4U n'offre actuellement pas de résolution pour de telles situations. Lorsque cela se produit, voici une solution de contournement:

  • Si vous avez déjà migré Firebase et EDM4U vers Unity Package Manager et que vous importez un autre SDK contenant EDM4U dans .unitypackage , par exemple, Google Ads ou Facebook SDK, vous pouvez simplement supprimer les dossiers Assets/ExternalDependencyManager et / ou Assets/PlayServicesResolver .
  • Si vous avez accidentellement installé EDM4U via Unity Package Manager avant de le supprimer du dossier Assets , procédez comme suit pour résoudre le conflit:
    1. Supprimez les dossiers Assets/ExternalDependencyManager et / ou Assets/PlayServicesResolver .
    2. Désinstaller tous les packages Firebase et EDM4U de Unity Package Manager
    3. Réinstallez tous les packages Firebase et EDM4U nécessaires à partir d'UPM.

Problèmes avec Firebase installé via Unity Package Manager dans Unity 2018

Lorsque Firebase est installé via Unity Package Manager dans Unity 2018, EDM4U peut ne pas être en mesure de découvrir certaines des dépendances natives Android et iOS de Firebase. Cela est dû au fait que les fichiers des packages installés en tant que dépendance ne sont pas enregistrés dans AssetDatabase d'Unity. Le problème le plus courant est l'impossibilité de créer une FirebaseApp dans Android en raison d'une DllNotFoundException .

Par exemple, lorsque Realtime Database est installé via Unity Package Manager , Auth et Firebase App (Core) sont automatiquement installés en tant que dépendances. Cependant, EDM4U n'est pas en mesure de découvrir AuthDependencies.xml et AppDependencies.xml , qui contiennent leurs dépendances natives Android et iOS, car ils ne sont pas enregistrés dans AssetDatabase dans Unity 2018. Par conséquent, certaines bibliothèques natives peuvent manquer dans Android ou Version iOS.

La solution de contournement à ce problème consiste à s'assurer que tous les packages Firebase sont explicitement installés via Unity Package Manager . Par exemple, si vous souhaitez installer Realtime Database , assurez-vous de cliquer sur install pour Auth et Firebase App (Core) via Unity Package Manager également.

Un problème avec single dex lors de la création d'une application Android

Lors de la création de l'application Android, vous pouvez rencontrer un échec de construction lié à la possession d'un seul fichier dex. Le message d'erreur ressemble au suivant, si votre projet est configuré pour utiliser le système de génération Gradle.

Cannot fit requested classes in a single dex file.

Les fichiers exécutables Dalvik ( .dex ) sont utilisés pour contenir un ensemble de définitions de classe et leurs données complémentaires associées pour les applications Android ( .apk ). Un seul fichier dex est limité à la référence à 65 536 méthodes. La génération échouera si le nombre total de méthodes de toutes les bibliothèques Android de votre projet dépasse cette limite.

Unity a introduit Minification en 2017.2, qui utilise Proguard (ou d'autres outils dans certaines versions d'Unity) pour supprimer le code inutilisé, ce qui peut réduire le nombre total de méthodes référencées dans un seul fichier dex. L'option se trouve dans Paramètres du lecteur> Android> Paramètres de publication> Réduire . Les options peuvent différer dans les différentes versions de Unity, alors reportez-vous à la documentation officielle de Unity.

Si le nombre de méthodes référencées dépasse toujours la limite, une autre option consiste à activer le multidex . Il existe plusieurs façons d'y parvenir dans Unity:

  • Si le Custom Gradle Template sous Player Settings mainTemplate.gradle est activé, modifiez mainTemplate.gradle .
  • Si vous utilisez Android Studio pour créer le projet exporté, modifiez le fichier build.gradle niveau du build.gradle .

Plus de détails peuvent être trouvés dans le guide de l'utilisateur multidex .

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 dans l'éditeur Unity et sur les 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 des SDK Firebase Unity qui peuvent s'exécuter sous Windows, macOS, Linux et à partir de l'éditeur Unity.

  1. Configurez un projet Unity de plate-forme de bureau en suivant les mêmes instructions que pour une plate-forme mobile (commencez par l'étape Enregistrer votre application auprès de Firebase ci-dessus.

  2. Exécutez votre projet Unity dans l'IDE Unity ou choisissez de créer votre projet Unity pour le bureau .

  3. (Facultatif) Exécutez votre projet Unity en mode d'édition.

    Le SDK Firebase Unity peut également être exécuté en mode d'édition d'Unity, permettant son utilisation dans les plugins d'éditeur.

    1. Lorsque vous créez une FirebaseApp utilisée par l'éditeur, n'utilisez pas l'instance par défaut.

    2. Au lieu de cela, fournissez un nom unique à l'appel FirebaseApp.Create() .

      Ceci est important pour éviter un conflit d'options entre l'instance utilisée par l'EDI Unity et l'instance utilisée par votre projet Unity.

Produits Firebase pris en charge

En savoir plus sur les bibliothèques Unity Firebase dans la documentation de référence .

Le SDK Firebase Unity prend en charge les produits Firebase suivants sur iOS et Android :

Produit Firebase Paquet Unity
AdMob Distribué séparément dans le plug-in AdMob Unity
Analytique FirebaseAnalytics.unitypackage
Authentification FirebaseAuth.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Fonctions cloud FirebaseFunctions.unitypackage
Messagerie cloud FirebaseMessaging.unitypackage
(recommandé) FirebaseAnalytics.unitypackage
Stockage en ligne FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(recommandé) FirebaseAnalytics.unitypackage
Liens dynamiques FirebaseDynamicLinks.unitypackage
(recommandé) FirebaseAnalytics.unitypackage
Base de données en temps réel FirebaseDatabase.unitypackage
Configuration à distance FirebaseRemoteConfig.unitypackage
(recommandé) FirebaseAnalytics.unitypackage

Produits Firebase pris en charge (bureau)

Le SDK Firebase Unity inclut la prise en charge du flux de travail de bureau pour un sous-ensemble de produits, permettant à certaines parties de Firebase d'être utilisées dans l'éditeur Unity et dans les versions de bureau autonomes sous Windows, macOS et Linux.

Produit Firebase (bureau) Paquet Unity
Authentification FirebaseAuth.unitypackage
Fonctions cloud FirebaseFunctions.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Stockage en ligne FirebaseStorage.unitypackage
Base de données en temps réel FirebaseDatabase.unitypackage
Configuration à distance FirebaseRemoteConfig.unitypackage

Firebase fournit les bibliothèques de bureau restantes sous forme d'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 du code conditionnellement pour cibler le bureau.

Prochaines étapes