Google Play Games Hizmetleri'ni kullanarak Unity'de kimlik doğrulama
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bir Android oyununda kullanıcıların oturum açmak için Google Play Games hizmetlerini kullanabilirsiniz
geliştirmeyi öğreneceksiniz. Google Play Games Hizmetleri'nde oturum açmak için şununla oturum açın:
Firebase için öncelikle Google Play Games'de oturum açın ve
OAuth 2.0 yetkilendirme kodu ekleyin. Ardından,
Firebase kimlik bilgisi oluşturmak için PlayGamesAuthProvider
Firebase ile kimlik doğrulama.
Başlamadan önce
Unity projenizi oluşturun
Firebase yapılandırma dosyasını ve FirebaseUnity SDK'sını Unity projenize ekleyin
aşağıdaki şekilde açıklandığı gibi
Firebase'i Unity projenize ekleyin.
Android için talimatları uygulayın.
Unity Editor'da, Build Settings (Derleme Ayarları) > Oynatıcı Ayarları > Diğer
Ayarlar, oyununuzun Android paket adını belirler.
Ardından, Derleme Ayarları > Oynatıcı Ayarları > Yayınlama Ayarları,
Android cihazınızı imzalamak için kullanılacak bir anahtar deposu ve anahtar seçin veya oluşturun
paketinden yararlanın. Play Games'te oturum açma özelliğinin çalışması için APK'nızın imzalanmış olması gerekir
bu gereklilik yalnızca yayıncılık için değil, ayrıca geliştirme sürecinde
gösterir.
Projenizin web sunucusu istemci kimliğini ve istemcisini oluşturun ve edinin
sır:
Oturum açma yöntemi sekmesinde, Google ile oturum açma özelliğini etkinleştirin
sağlar.
Google ile oturum açma bilgilerinden web sunucusu istemci kimliğini ve gizli anahtarı kopyalayın
sağlar.
Oturum açma yöntemi sekmesinde Play Games hizmetini etkinleştirin
oturum açma sağlayıcısını seçin ve projenizin web sunucusu istemci kimliğini ve
istemci sırrı (gizli anahtarı) içerir.
Play Games services uygulamasını Firebase uygulama bilgilerinizle yapılandırın
Google Play Konsolu,
Google Play uygulamanızı açın veya bir uygulama oluşturun.
Büyüme bölümünde,
Play Games services > Kurulum ve Yönetim > Yapılandırma'yı tıklayın.
Evet, oyunumda zaten Google API'leri kullanılıyor'u tıklayın, Firebase'inizi seçin
projeyi seçin ve Kullan'ı tıklayın.
Play Games services yapılandırma sayfasında şunu tıklayın:
Kimlik Bilgisi Ekle.
Oyun sunucusu türünü seçin.
OAuth istemcisi alanında projenizin web istemcisi kimliğini seçin.
Bunun, etkinleştirdiğiniz istemci kimliği ile aynı olduğundan emin olun.
Play Games oturum açma.
Yaptığınız değişiklikleri kaydedin.
Play Games services yapılandırma sayfasındayken
Tekrar Kimlik Bilgisi Ekleyin.
Etkinlikler, Başarılar ve Skor Tabloları sayfalarında, oluşturduğunuz herhangi bir
Oyununuzla kullanmak istediğiniz Play Games kaynak (yoksa)
hemen kullanmak istiyorsanız bir yer tutucu girişi oluşturabilirsiniz). Ardından,
Etkinlikler, Başarılar veya Skor tabloları sayfalarından herhangi birinde
Kaynakları alın ve Android kaynak snippet'ini bir yere kopyalayın.
yardımcı olur. Google Play Games services özelliğini ayarlamak için snippet'e ihtiyacınız olacak.
eklentisidir.
Test kullanıcıları sayfasında, teste tabi tutulması gereken tüm kullanıcıların e-posta adreslerini
Google Play Geliştirici Konsolu'nda yayınlamadan önce oyununuzda oturum
Play Store.
Play Games oturum açma özelliğini oyununuza entegre etme
Eklentinin Unity paketini Unity projenize aktarın. Daha fazla
Sürüm arşivinin current-build dizinindeki Unity paketi.
Play Games eklentisini ayarlayın:
Pencere > Google Play Oyunlar > Kurulum > Android Kurulumu'nu
Android Yapılandırması ekranı.
Play Console'dan aldığınız Android kaynakları snippet'ini
Kaynak Tanımı alanına girin.
Etkinleştirirken sağladığınız web sunucusu istemci kimliğinizi yapıştırın
Firebase konsolunda, İstemci Kimliği'ne giderek Play Games oturum açma
girin.
Kurulum'u tıklayın.
Oyununuzda, RequestServerAuthCode ile bir Play Games istemcisini yapılandırın
ayar etkin:
usingGooglePlayGames;usingGooglePlayGames.BasicApi;usingUnityEngine.SocialPlatforms;usingSystem.Threading.Tasks;PlayGamesClientConfigurationconfig=newPlayGamesClientConfiguration.Builder().RequestServerAuthCode(false/* Don't force refresh */).Build();PlayGamesPlatform.InitializeInstance(config);PlayGamesPlatform.Activate();
Ardından, bir oyuncu Play Games'de oturum açmayı seçtiğinde
Social.localUser.Authenticate():
Social.localUser.Authenticate((boolsuccess)=>{// handle success or failure});
Firebase ile kimlik doğrulama
Oyununuza Play Games oturum açma bilgilerini ekledikten sonra,
Play Games Hizmetleri'ne gidin.
Oyuncu, Play Games'i kullanarak başarıyla oturum açtıktan sonra,
devam işleyicisi, oyuncunun hesabı için bir yetkilendirme kodu al:
Ardından, Play Games hizmetlerindeki yetkilendirme kodunu Firebase ile değiştirin
ve oynatıcının kimliğini doğrulamak için Firebase kimlik bilgisini kullanın:
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);});
Sonraki adımlar
Kullanıcı ilk kez oturum açtığında yeni bir kullanıcı hesabı oluşturulur ve
kendi Play Games kimliklerine bağladıkları hesaptır. Bu yeni hesap, şu bilgilerin bir parçası olarak saklanır:
ve Firebase'deki tüm uygulamalarda bir kullanıcıyı tanımlamak için kullanılabilir.
belirler.
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;}
Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda şunları alabilirsiniz:
oturum açmış kullanıcının auth değişkenindeki benzersiz kullanıcı kimliğini kullanarak
Kullanıcının hangi verilere erişebileceğini kontrol etmek
Kullanıcının Play Games oyuncu bilgilerini almak veya Play Games hizmetlerine erişmek için:
Play Games eklentisi tarafından sağlanan API'leri kullanmalıdır.
Bir kullanıcının oturumunu kapatmak için SignOut() numaralı telefonu arayın:
[null,null,["Son güncelleme tarihi: 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();"]]