S'authentifier dans Unity à l'aide des services de jeux Google Play
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Vous pouvez utiliser les services de jeux Google Play pour connecter les joueurs à un jeu Android
basé sur Firebase et Unity. Pour utiliser la connexion aux services Google Play Jeux avec Firebase, connectez d'abord le joueur avec Google Play Jeux et demandez un code d'autorisation OAuth 2.0. Transmettez ensuite le code d'autorisation à PlayGamesAuthProvider pour générer des identifiants Firebase, que vous pouvez utiliser pour vous authentifier avec Firebase.
Avant de commencer
Configurer votre projet Unity
Ajoutez le fichier de configuration Firebase et le SDK UnityFirebase à votre projet Unity
comme décrit dans
Ajoutez Firebase à votre projet Unity.
Suivez les instructions pour Android.
Veillez à importer FirebaseAuth.unitypackage.
Dans l'éditeur Unity, sous Build Settings > Paramètres du lecteur > Autre
Les paramètres définissent le nom du package Android de votre jeu.
Ensuite, sous Build Settings > Paramètres du lecteur > Paramètres de publication,
sélectionnez ou créez un keystore et une clé, qui seront utilisés pour signer votre
d'un package. Pour que la connexion à Play Jeux fonctionne, votre APK doit être signé.
s'applique non seulement à la publication, mais aussi au développement
votre jeu.
Configurer votre projet Firebase
Dans la console Firebase, accédez au projet Firebase dans lequel vous avez enregistré votre projet Unity.
Définissez l'empreinte SHA-1 de votre jeu à partir de la
Page Paramètres
de la console Firebase à l'aide de la clé que vous avez définie dans Unity.
Vous pouvez obtenir l'empreinte SHA-1 de votre clé à l'aide de la commande keytool:
Générez et obtenez l'ID client et le code secret client du serveur Web de votre projet :
Dans l'onglet Mode de connexion, activez la connexion Google.
un fournisseur de services agréé.
Copiez l'ID client et le secret du serveur Web à partir du fournisseur de connexion Google.
Dans l'onglet Mode de connexion, activez Play Games.
ainsi que l'ID client du serveur Web de votre projet et
que vous avez obtenu à la dernière étape.
Configurer Play Games services avec les informations de votre application Firebase
Dans
Console Google Play,
ouvrez votre application Google Play ou créez-en une.
Dans la section Croissance, cliquez sur
Play Games services > Configuration et Gestion > Configuration.
Cliquez sur Oui, mon jeu utilise déjà des API Google, puis sélectionnez votre projet Firebase
projet dans la liste, puis cliquez sur Utiliser.
Sur la page de configuration de Play Games services, cliquez sur Add Credential (Ajouter des identifiants).
Sélectionnez le type de serveur de jeu.
Dans le champ Client OAuth, sélectionnez l'ID client Web de votre projet. Assurez-vous qu'il s'agit du même ID client que celui que vous avez spécifié lorsque vous avez activé la connexion Play Games.
Enregistrez les modifications.
Toujours sur la page de configuration de Play Games services, cliquez à nouveau sur Ajouter des identifiants.
Sélectionnez le type Android.
Dans le champ Client OAuth, sélectionnez l'ID client Android de votre projet.
(Si vous ne voyez pas votre ID client Android, assurez-vous de définir le
empreinte SHA-1 dans la console Firebase.)
Enregistrez les modifications.
Sur les pages Événements, Réussites et Classements, créez
Play Games ressources que vous souhaitez utiliser avec votre jeu (si vous ne
si vous souhaitez utiliser immédiatement n'importe quelle entrée, vous pouvez créer une entrée d'espace réservé). Ensuite, sur
l'une des pages Événements, Réussites ou Classements, cliquez sur
Obtenez des ressources et copiez l'extrait de ressources Android quelque part.
pratiques. Vous en aurez besoin pour configurer Google Play Games services
.
Sur la page Testeurs, ajoutez les adresses e-mail de tous les utilisateurs ayant besoin
de se connecter à votre jeu avant de le publier sur le
Play Store
Importez le package Unity du plug-in dans votre projet Unity. Vous trouverez
Package Unity dans le répertoire current-build de l'archive de version.
Configurez le plug-in Play Jeux:
Cliquez sur Window > Google Play Games > Setup > Android Setup (Fenêtre > Google Play Jeux > Configuration > Configuration Android) pour ouvrir l'écran Android Configuration (Configuration Android).
Collez l'extrait de ressources Android que vous avez obtenu dans la Play Console dans
le champ Définition des ressources.
Collez l'ID client de serveur Web, que vous avez fourni lors de l'activation.
Connectez-vous à Play Jeux dans la console Firebase, dans le Client ID.
.
Cliquez sur Configurer.
Dans votre jeu, configurez un client Play Jeux avec le RequestServerAuthCode.
paramètre activé:
usingGooglePlayGames;usingGooglePlayGames.BasicApi;usingUnityEngine.SocialPlatforms;usingSystem.Threading.Tasks;PlayGamesClientConfigurationconfig=newPlayGamesClientConfiguration.Builder().RequestServerAuthCode(false/* Don't force refresh */).Build();PlayGamesPlatform.InitializeInstance(config);PlayGamesPlatform.Activate();
Ensuite, lorsqu'un joueur choisit de se connecter avec Jeux Play, appelez Social.localUser.Authenticate() :
Social.localUser.Authenticate((boolsuccess)=>{// handle success or failure});
S'authentifier avec Firebase
Après avoir ajouté la connexion Play Jeux à votre jeu, vous pouvez utiliser le code d'autorisation fourni par
services de jeux Play pour s'authentifier auprès de Firebase.
Une fois que le joueur s'est connecté avec Play Jeux, lors de la connexion
utilisez le gestionnaire de continuation, obtenez un code d'autorisation pour le compte du joueur:
Échangez ensuite le code d'autorisation des services de jeux Play contre des identifiants Firebase, puis utilisez les identifiants Firebase pour authentifier le joueur :
Firebase.Auth.FirebaseAuthauth=Firebase.Auth.FirebaseAuth.DefaultInstance;Firebase.Auth.Credentialcredential=Firebase.Auth.PlayGamesAuthProvider.GetCredential(authCode);auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task=>{if(task.IsCanceled){Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");return;}if(task.IsFaulted){Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: "+task.Exception);return;}Firebase.Auth.AuthResultresult=task.Result;Debug.LogFormat("User signed in successfully: {0} ({1})",result.User.DisplayName,result.User.UserId);});
Étapes suivantes
Lorsqu'un utilisateur se connecte pour la première fois, un compte utilisateur est créé et
associé à son ID Play Jeux. Ce nouveau compte est stocké dans votre
dans votre projet Firebase. Vous pouvez l'utiliser pour identifier un utilisateur dans toutes les applications de votre
projet.
Dans votre jeu, vous pouvez obtenir l'UID Firebase de l'utilisateur à partir de l'objet Firebase.Auth.FirebaseUser :
Firebase.Auth.FirebaseUseruser=auth.CurrentUser;if(user!=null && user.IsValid()){stringplayerName=user.DisplayName;// The user's Id, unique to the Firebase project.// Do NOT use this value to authenticate with your backend server, if you// have one; use User.TokenAsync() instead.stringuid=user.UserId;}
Dans votre base de données Firebase Realtime Database et vos règles de sécurité Cloud Storage, vous pouvez obtenir
l'ID utilisateur unique de l'utilisateur connecté à partir de la variable auth et utilisez-le pour
contrôler les données auxquelles
un utilisateur peut accéder.
Pour obtenir les informations sur le joueur Play Jeux d'un utilisateur ou pour accéder aux services Play Jeux, utilisez les API fournies par le plug-in Play Jeux.
Pour déconnecter un utilisateur, appelez SignOut() :
auth.SignOut();
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/29 (UTC).
[null,null,["Dernière mise à jour le 2025/08/29 (UTC)."],[],[],null,["You can use Google Play Games services to sign in players to an Android game\nbuilt on Firebase and Unity. To use Google Play Games services sign-in with\nFirebase, first sign in the player with Google Play Games, and request an\nOAuth 2.0 auth code when you do so. Then, pass the auth code to\n`PlayGamesAuthProvider` to generate a Firebase credential, which you can use to\nauthenticate with Firebase.\n| **Important:** You can use Google Play Games services sign-in only on Android.\n\nBefore you begin\n\nSet up your Unity project\n\n1. Add the Firebase config file and the Firebase Unity SDK to your Unity project\n as described in\n [Add Firebase to your Unity project](/docs/unity/setup#set_up_environment).\n Follow the instructions for Android.\n\n Be sure to import `FirebaseAuth.unitypackage`.\n2. In the Unity Editor, under **Build Settings \\\u003e Player Settings \\\u003e Other\n Settings** set the Android package name of your game.\n\n3. Then, under **Build Settings \\\u003e Player Settings \\\u003e Publishing Settings**,\n select or create a keystore and key, which will be used to sign your Android\n package. Your APK must be signed for Play Games sign-in to work---this\n requirement applies not just for publishing, but also during development of\n your game.\n\nSet up your Firebase project\n\n1. In the [Firebase console](//console.firebase.google.com/), go to the Firebase project\n in which you registered your Unity project.\n\n2. Set your game's SHA-1 fingerprint from the\n [Settings](//console.firebase.google.com/project/_/settings/general/) page\n of the Firebase console, using the key you set in Unity.\n\n You can get the SHA-1 fingerprint of your key with the `keytool` command: \n\n ```\n keytool -exportcert -list -v \\\n -alias YOUR-KEY-NAME -keystore PATH-TO-KEYSTORE\n ```\n\n \u003cbr /\u003e\n\n Alternatively, you can get the SHA hash of your signing certificate with the\n gradle `signingReport` command: \n\n ```\n gradlew signingReport\n ```\n\n \u003cbr /\u003e\n\n Your APK must be signed with this key, including during development.\n3. Enable Google Play Games as a sign-in provider:\n\n 1. In the Firebase console, open the\n [**Authentication** section](//console.firebase.google.com/project/_/authentication/providers).\n\n 2. Generate and obtain your project's web server client ID and client\n secret:\n\n 1. Within the **Sign in method** tab, enable the **Google** sign-in\n provider.\n\n 2. Copy the web server client ID and secret from the **Google** sign-in\n provider.\n\n 3. Within the **Sign in method** tab, enable the **Play Games**\n sign-in provider, and specify your project's web server client ID and\n client secret, which you got in the last step.\n\nConfigure Play Games services with your Firebase app information\n\n1. In the\n [Google Play Console](https://play.google.com/console/developers),\n open your Google Play app or create one.\n\n2. In the *Grow* section, click\n **Play Games services \\\u003e Setup \\& Management \\\u003e Configuration**.\n\n3. Click **Yes, my game already uses Google APIs** , select your Firebase\n project from the list, and then click **Use**.\n\n4. On the Play Games services configuration page, click\n **Add Credential**.\n\n 1. Select the **Game server** type.\n 2. In the **OAuth client** field, select your project's web client ID. Be sure this is the same client ID you specified when you enabled Play Games sign-in.\n 3. Save your changes.\n5. Still on the Play Games services configuration page, click\n **Add Credential** again.\n\n 1. Select the **Android** type.\n 2. In the **OAuth client** field, select your project's Android client ID. (If you don't see your Android client ID, be sure you set your game's SHA-1 fingerprint in the Firebase console.)\n 3. Save your changes.\n6. On the **Events** , **Achievements** , and **Leaderboards** pages, create any\n Play Games resources you want to use with your game (if you don't\n want to use any immediately, you can create a placeholder entry). Then, on\n any of the **Events** , **Achievements** , or **Leaderboards** pages, click\n **Get resources** and copy the Android resources snippet somewhere\n convenient. You will need the snippet to set up the Google Play Games services\n plugin.\n\n The resources snippet looks like the following example: \n\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003c!--\n Google Play game services IDs.\n Save this file as res/values/games-ids.xml in your project.\n --\u003e\n \u003cresources\u003e\n \u003c!-- app_id --\u003e\n \u003cstring name=\"app_id\" translatable=\"false\"\u003e123456789000\u003c/string\u003e\n \u003c!-- package_name --\u003e\n \u003cstring name=\"package_name\" translatable=\"false\"\u003ecom.example.game\u003c/string\u003e\n \u003c!-- event Wiped Raid --\u003e\n \u003cstring name=\"event_wiped_raid\" translatable=\"false\"\u003eCgkIpKjv1a4PEAIYBA\u003c/string\u003e\n \u003c/resources\u003e\n\n7. On the **Testers** page, add the email addresses of any users who need\n to be able to sign in to your game before you release it on the\n Play Store.\n\nIntegrate Play Games sign-in into your game\n\n1. Download the latest release of the\n [Play Games plugin for Unity](https://github.com/playgameservices/play-games-plugin-for-unity/releases)\n and extract it.\n\n2. Import the plugin's Unity package into your Unity project. You can find the\n Unity package in the `current-build` directory of the release archive.\n\n3. Set up the Play Games plugin:\n\n 1. Click **Window \\\u003e Google Play Games \\\u003e Setup \\\u003e Android Setup** to open the **Android Configuration** screen.\n 2. Paste the Android resources snippet you got from the Play console into the **Resources Definition** field.\n 3. Paste your web server client ID, which you provided when you enabled Play Games sign-in in the Firebase console, into the **Client ID** field.\n 4. Click **Setup**.\n4. In your game, configure a Play Games client with the `RequestServerAuthCode`\n setting enabled:\n\n using GooglePlayGames;\n using GooglePlayGames.BasicApi;\n using UnityEngine.SocialPlatforms;\n using System.Threading.Tasks;\n\n PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()\n .RequestServerAuthCode(false /* Don't force refresh */)\n .Build();\n\n PlayGamesPlatform.InitializeInstance(config);\n PlayGamesPlatform.Activate();\n\n5. Then, when a player chooses to sign in with Play Games, call\n `Social.localUser.Authenticate()`:\n\n Social.localUser.Authenticate((bool success) =\u003e {\n // handle success or failure\n });\n\nAuthenticate with Firebase\n\nAfter you add Play Games sign-in to your game, you can use the auth code from\nPlay Games services to authenticate with Firebase.\n\n1. After the player has successfully signed in using Play Games, in the sign-in\n continuation handler, get an auth code for the player's account:\n\n Social.localUser.Authenticate((bool success) =\u003e {\n if (success) {\n authCode = PlayGamesPlatform.Instance.GetServerAuthCode();\n }\n });\n\n2. Then, exchange the auth code from Play Games services for a Firebase\n credential, and use the Firebase credential to authenticate the player:\n\n Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;\n Firebase.Auth.Credential credential =\n Firebase.Auth.PlayGamesAuthProvider.GetCredential(authCode);\n auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task =\u003e {\n if (task.IsCanceled) {\n Debug.LogError(\"SignInAndRetrieveDataWithCredentialAsync was canceled.\");\n return;\n }\n if (task.IsFaulted) {\n Debug.LogError(\"SignInAndRetrieveDataWithCredentialAsync encountered an error: \" + task.Exception);\n return;\n }\n\n Firebase.Auth.AuthResult result = task.Result;\n Debug.LogFormat(\"User signed in successfully: {0} ({1})\",\n result.User.DisplayName, result.User.UserId);\n });\n\nNext steps\n\nAfter a user signs in for the first time, a new user account is created and\nlinked to their Play Games ID. This new account is stored as part of your\nFirebase project, and can be used to identify a user across every app in your\nproject.\n\nIn your game, you can get the user's Firebase UID from the\n`Firebase.Auth.FirebaseUser` object: \n\n Firebase.Auth.FirebaseUser user = auth.CurrentUser;\n if (user != null && user.IsValid()) {\n string playerName = user.DisplayName;\n\n // The user's Id, unique to the Firebase project.\n // Do NOT use this value to authenticate with your backend server, if you\n // have one; use User.TokenAsync() instead.\n string uid = user.UserId;\n }\n\nIn your Firebase Realtime Database and Cloud Storage Security Rules, you can get\nthe signed-in user's unique user ID from the `auth` variable, and use it to\ncontrol what data a user can access.\n\nTo get a user's Play Games player information or to access Play Games services,\nuse the APIs provided by the Play Games plugin.\n\nTo sign out a user, call `SignOut()`: \n\n auth.SignOut();"]]