In Unity mit Google Play-Spieldiensten authentifizieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Mit den Google Play Spiele-Diensten können Sie Spieler in einem Android-Spiel anmelden, das auf Firebase und Unity basiert. Wenn du die Google Play-Spieldienste verwenden möchtest, melde dich mit
Firebase öffnen, melden Sie sich im Player mit Google Play Spiele an und fordern Sie
OAuth 2.0-Authentifizierungscode an. Übergeben Sie dann den Autorisierungscode an
PlayGamesAuthProvider zum Generieren von Firebase-Anmeldedaten, mit denen du
sich bei Firebase zu authentifizieren.
Achten Sie darauf, FirebaseAuth.unitypackage zu importieren.
Gehen Sie im Unity Editor unter Build Settings > Player-Einstellungen > Sonstiges
Einstellungen legen Sie den Android-Paketnamen Ihres Spiels fest.
Gehen Sie dann zu Build Settings > Player-Einstellungen > Veröffentlichungseinstellungen
Einen Schlüsselspeicher und einen Schlüssel auswählen oder erstellen, die zum Signieren Ihres Android-Geräts verwendet werden
Paket. Damit die Anmeldung in Play Spiele funktioniert, muss dein APK signiert sein.
nicht nur für die Veröffentlichung, sondern auch für die Entwicklung
für Ihr Spiel.
Das Firebase-Projekt einrichten
Rufen Sie in der Firebase-Konsole das Firebase-Projekt auf.
bei dem Sie Ihr Unity-Projekt registriert haben.
Legen Sie den SHA-1-Fingerabdruck Ihres Spiels über das
Seite Einstellungen
der Firebase-Konsole mit dem Schlüssel, den Sie in Unity festgelegt haben.
Den SHA-1-Fingerabdruck Ihres Schlüssels können Sie mit dem Befehl keytool abrufen:
Generieren und abrufen Sie die Webserver-Client-ID und das Client-Secret Ihres Projekts:
Aktivieren Sie auf dem Tab Anmeldemethode die Google-Anmeldung.
Dienstanbieter.
Kopieren Sie die Webserver-Client-ID und das Secret aus dem Google Log-in
Dienstanbieter.
Aktivieren Sie auf dem Tab Anmeldemethode die Option Play Games.
und geben Sie die Webserver-Client-ID und
Clientschlüssel, den Sie im letzten Schritt abgerufen haben.
Play Games services mit den Informationen Ihrer Firebase-App konfigurieren
Im
Google Play-Konsole,
öffnen Sie die Google Play App oder erstellen Sie eine.
Klicken Sie im Bereich Wachsen auf
Play Games services > Einrichtung und Verwaltung > Konfiguration.
Klicken Sie auf Ja, in meinem Spiel werden bereits Google APIs verwendet und wählen Sie Ihr Firebase-Konto aus.
aus der Liste aus und klicken Sie dann auf Verwenden.
Klicken Sie auf der Konfigurationsseite von Play Games services auf
Anmeldedaten hinzufügen.
Wählen Sie den Typ Gameserver aus.
Wählen Sie im Feld OAuth-Client die Webclient-ID Ihres Projekts aus. Seien
Dies ist dieselbe Client-ID, die Sie bei der Aktivierung
Play Games-Anmeldung.
Speichern Sie die Änderungen.
Klicken Sie auf der Konfigurationsseite von Play Games services auf
Füge die Anmeldedaten noch einmal hinzu.
Wählen Sie als Typ Android aus.
Wählen Sie im Feld OAuth-Client die Android-Client-ID Ihres Projekts aus.
Wenn Ihre Android-Client-ID nicht angezeigt wird, achten Sie darauf, die
SHA-1-Fingerabdruck in der Firebase-Konsole.)
Speichern Sie die Änderungen.
Erstellen Sie auf den Seiten Ereignisse, Erfolge und BestenlistenPlay Games Ressourcen, die du für dein Spiel verwenden möchtest (falls du
sofort verwenden möchten, können Sie einen Platzhaltereintrag erstellen. Dann, am
einer der Seiten Ereignisse, Erfolge oder BestenlistenRessourcen abrufen und das Android-Ressourcen-Snippet kopieren
praktisch sein. Du benötigst das Snippet, um Google Play Games services einzurichten
.
Importieren Sie das Unity-Paket des Plug-ins in Ihr Unity-Projekt. Sie finden das Unity-Paket im Verzeichnis current-build des Release-Archivs.
Play Spiele-Plug-in einrichten:
Klicken Sie auf Fenster > Google Play Spiele > Einrichtung > Android-Einrichtung, um die
Android-Konfiguration.
Fügen Sie das Android-Ressourcen-Snippet, das Sie aus der Play Console erhalten haben, in das Feld Resources Definition (Ressourcendefinition) ein.
Fügen Sie die Client-ID Ihres Webservers, die Sie bei der Aktivierung der Play Spiele-Anmeldung in der Firebase-Konsole angegeben haben, in das Feld Client-ID ein.
Klicken Sie auf Einrichten.
Konfiguriere in deinem Spiel einen Play Spiele-Client mit der RequestServerAuthCode
aktivierte Einstellung:
usingGooglePlayGames;usingGooglePlayGames.BasicApi;usingUnityEngine.SocialPlatforms;usingSystem.Threading.Tasks;PlayGamesClientConfigurationconfig=newPlayGamesClientConfiguration.Builder().RequestServerAuthCode(false/* Don't force refresh */).Build();PlayGamesPlatform.InitializeInstance(config);PlayGamesPlatform.Activate();
Wenn sich ein Spieler dann bei Play Spiele anmeldet, ruft er
Social.localUser.Authenticate():
Social.localUser.Authenticate((boolsuccess)=>{// handle success or failure});
Mit Firebase authentifizieren
Nachdem du deinem Spiel eine Play Spiele-Anmeldung hinzugefügt hast, kannst du den Autorisierungscode von
Play-Spieldienste zur Authentifizierung bei Firebase.
Nachdem sich der Spieler erfolgreich über Play Spiele angemeldet hat,
Continuation-Handler, rufe einen Autorisierungscode für das Konto des Spielers ab:
Tauschen Sie dann den Authentifizierungscode aus den Play-Spieldiensten gegen Firebase-Anmeldedaten aus und authentifizieren Sie den Spieler mit den Firebase-Anmeldedaten:
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);});
Nächste Schritte
Nachdem sich ein Nutzer zum ersten Mal angemeldet hat, wird ein neues Nutzerkonto erstellt und
die mit ihrer Play Spiele-ID verknüpft ist. Dieses neue Konto wird als Teil deiner
Firebase-Projekt erstellen und zur Identifizierung von Nutzern in jeder App in Ihrem
Projekt arbeiten.
In Ihrem Spiel können Sie die Firebase-UID des Nutzers aus der
Objekt 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;}
Die Firebase Realtime Database und die Cloud Storage-Sicherheitsregeln enthalten folgende Informationen:
Eindeutige Nutzer-ID des angemeldeten Nutzers aus der Variablen auth und für folgende Aktionen verwenden:
festlegen, auf welche Daten
ein Nutzer zugreifen kann.
Um die Play Spiele-Spielerinformationen eines Nutzers zu erhalten oder auf die Play-Spieldienste zuzugreifen,
Die vom Play Spiele-Plug-in bereitgestellten APIs verwenden
Um einen Nutzer abzumelden, rufen Sie SignOut() auf:
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-09-04 (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();"]]