Uwierzytelnij się w Unity przy użyciu usług gier Google Play
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Możesz używać usług Gier Google Play do logowania graczy w grach na Androida
oparte na Firebase i Unity. Aby korzystać z usług Gier Google Play, zaloguj się za pomocą
Firebase, najpierw zaloguj się w odtwarzaczu w Grach Google Play i poproś o
użyj kodu uwierzytelniającego OAuth 2.0. Następnie przekaż kod autoryzacji do
PlayGamesAuthProvider, aby wygenerować dane logowania Firebase, których możesz użyć do:
uwierzytelniać się w Firebase.
Zanim zaczniesz
Konfigurowanie projektu w Unity
Dodaj plik konfiguracyjny Firebase i pakiet SDK Unity (Firebase) do projektu Unity
zgodnie z opisem w
Dodaj Firebase do projektu w Unity
Postępuj zgodnie z instrukcjami dotyczącymi Androida.
Pamiętaj, aby zaimportować: FirebaseAuth.unitypackage.
W edytorze Unity w sekcji Build Settings > (Ustawienia kompilacji >) Ustawienia odtwarzacza > Inny powód
Ustawienia określają nazwę pakietu gry na Androida.
Następnie w sekcji Ustawienia kompilacji > Ustawienia odtwarzacza > Ustawienia publikowania,
wybierz lub utwórz magazyn kluczy i klucz, które zostaną użyte do podpisania Androida
pakietu SDK. Aby logowanie w Grach Play było możliwe, plik APK musi być podpisany.
ma zastosowanie nie tylko w przypadku publikacji, ale także
Twojej gry.
Skonfiguruj projekt Firebase
W konsoli Firebase otwórz projekt Firebase.
w którym zarejestrowano projekt w Unity.
Ustaw odcisk cyfrowy SHA-1 gry na
Strona Ustawienia
konsoli Firebase przy użyciu klucza ustawionego w Unity.
Odcisk cyfrowy SHA-1 klucza możesz uzyskać za pomocą polecenia keytool:
Generowanie i uzyskiwanie identyfikatora klienta i klienta serwera WWW projektu
obiekt tajny:
Na karcie Metoda logowania włącz logowanie przez Google.
dostawcy usług.
Skopiuj identyfikator klienta i tajny klucz serwera WWW z sekcji logowania Google
dostawcy usług.
Na karcie Metoda logowania włącz Play Games.
dostawcy logowania i określ identyfikator klienta serwera WWW swojego projektu
(tajny klucz klienta) uzyskany w ostatnim kroku.
Skonfiguruj Play Games services, używając informacji z aplikacji Firebase
W sekcji Rozwój kliknij
Play Games services Konfiguracja Zarządzanie > Konfiguracja.
Kliknij Tak, moja gra już używa interfejsów API Google i wybierz Firebase.
projekt na liście i kliknij Użyj.
Na stronie konfiguracji Play Games services kliknij
Add Credential (Dodaj dane logowania).
Wybierz typ Serwer gry.
W polu Klient OAuth wybierz identyfikator klienta internetowego swojego projektu. Bądź
upewnij się, że jest to identyfikator klienta podany podczas włączania opcji
Play Games – logowanie.
Zapisz zmiany.
Pozostając na stronie konfiguracji Play Games services, kliknij
Ponownie Dodaj dane logowania.
Wybierz typ Androida.
W polu Klient OAuth wybierz identyfikator klienta Androida dla swojego projektu.
(Jeśli nie widzisz identyfikatora klienta Androida, upewnij się, że masz ustawiony
Odcisk cyfrowy SHA-1 w konsoli Firebase).
Zapisz zmiany.
Na stronach Wydarzenia, Osiągnięcia i Tabele wyników utwórz
Play Games zasobów, które chcesz wykorzystać w grze (jeśli ich nie masz)
którego chcesz użyć od razu, możesz utworzyć wpis zastępczy). Następnie
na dowolnej stronie Wydarzenia, Osiągnięcia lub Tabele wyników kliknij
Pobierz zasoby i skopiuj gdzieś fragment kodu zasobów Androida
co jest bardzo wygodne. Fragment kodu jest potrzebny do skonfigurowania Google Play Games services
wtyczki.
Na stronie Testerzy dodaj adresy e-mail wszystkich użytkowników, którzy
że będziesz mieć możliwość zalogowania się w grze przed opublikowaniem jej
Play Store
Zaimportuj pakiet Unity wtyczki do projektu Unity. Dodatkowe informacje na temat
Pakiet Unity w katalogu current-build archiwum wersji.
Skonfiguruj wtyczkę Gry Play:
Kliknij Okno > Gry Google Play > Konfiguracja > Konfiguracja Androida, aby otworzyć
Ekran Konfiguracja Androida.
Wklej fragment kodu zasobów Androida pobrany z Konsoli Play.
w polu Definicja zasobów.
Wklej identyfikator klienta serwera WWW podany przy aktywacji
Zaloguj się w Grach Play w konsoli Firebase za pomocą identyfikatora klienta.
.
Kliknij Konfiguruj.
Skonfiguruj w swojej grze klienta Gier Play z wykorzystaniem RequestServerAuthCode
włączone ustawienie:
usingGooglePlayGames;usingGooglePlayGames.BasicApi;usingUnityEngine.SocialPlatforms;usingSystem.Threading.Tasks;PlayGamesClientConfigurationconfig=newPlayGamesClientConfiguration.Builder().RequestServerAuthCode(false/* Don't force refresh */).Build();PlayGamesPlatform.InitializeInstance(config);PlayGamesPlatform.Activate();
Następnie, gdy gracz zdecyduje się zalogować w Grach Play, wywołaj polecenie
Social.localUser.Authenticate():
Social.localUser.Authenticate((boolsuccess)=>{// handle success or failure});
Uwierzytelnij za pomocą Firebase
Po dodaniu do gry logowania w Grach Play możesz używać kodu autoryzacji z
usług Gier Play do uwierzytelniania w Firebase.
Gdy gracz zaloguje się za pomocą Gier Play, zaloguj się
w aplikacji do obsługi kontynuacji, pobierz kod autoryzacji dla konta gracza:
Następnie wymień kod autoryzacji z usług Gier Play na potrzeby Firebase
dane logowania i użyj danych logowania Firebase, aby uwierzytelnić gracza:
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);});
Dalsze kroki
Gdy użytkownik zaloguje się po raz pierwszy, tworzone jest nowe konto użytkownika.
powiązane z identyfikatorem Gier Play. To nowe konto jest przechowywane w ramach
projektu Firebase i możesz go użyć do identyfikacji użytkownika w każdej aplikacji
w projektach AI.
W grze możesz uzyskać identyfikator Firebase UID użytkownika w aplikacji
Firebase.Auth.FirebaseUser obiekt:
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;}
W Bazie danych czasu rzeczywistego Firebase i Regułach zabezpieczeń Cloud Storage możesz uzyskać
unikalny identyfikator zalogowanego użytkownika ze zmiennej auth i użyj go do
kontrolować dostęp użytkownika do danych.
Aby uzyskać informacje o użytkowniku w Grach Play lub uzyskać dostęp do usług Gier Play:
korzysta z interfejsów API udostępnianych przez wtyczkę Gier Play.
Aby wylogować użytkownika, zadzwoń pod numer SignOut():
[null,null,["Ostatnia aktualizacja: 2025-08-16 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();"]]