Mit Firebase über ein benutzerdefiniertes Authentifizierungssystem und Unity authentifizieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Du kannst Firebase Authentication in ein benutzerdefiniertes Authentifizierungssystem einbinden, indem du
Ihren Authentifizierungsserver so ändern, dass benutzerdefinierte signierte Token generiert werden, wenn ein Nutzer
erfolgreich angemeldet ist. Deine App empfängt dieses Token und verwendet es zur Authentifizierung
mit Firebase.
Hinweis
-
Vor der Verwendung
Firebase Authentication,
sind folgende Schritte erforderlich:
- Registrieren Sie Ihr Unity-Projekt bei Ihrem Firebase-Projekt.
- Fügen Sie das Firebase Unity SDK hinzu (insbesondere
FirebaseAuth.unitypackage
) mit Ihrem Unity-Projekt verknüpfen.
Ausführliche Anleitungen zu diesen Ersteinrichtungsschritten finden Sie unter
Firebase zu Ihrer Unity hinzufügen
- Rufen Sie die Serverschlüssel Ihres Projekts ab:
- Rufen Sie in den Einstellungen Ihres Projekts die Seite Dienstkonten auf.
- Klicken Sie auf der Seite Dienstkonten unten im Abschnitt Firebase Admin SDK auf Neuen privaten Schlüssel generieren.
- Das öffentliche/private Schlüsselpaar des neuen Dienstkontos wird automatisch
die auf Ihrem Computer gespeichert sind. Kopieren Sie diese Datei auf Ihren Authentifizierungsserver.
Mit Firebase authentifizieren
Die
FirebaseAuth
-Klasse ist das Gateway für alle API-Aufrufe.
Sie kann über
FirebaseAuth.DefaultInstance aufgerufen werden.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
mit dem Token von aufrufen
Ihren Authentifizierungsserver.
- Wenn sich Nutzer in Ihrer App anmelden, werden ihre Anmeldedaten (z. B. Nutzername und Passwort) an Ihren Authentifizierungsserver gesendet. Dein Server prüft die Anmeldedaten und gibt ein benutzerdefiniertes Token zurück, wenn sie gültig sind.
- Nachdem Sie das benutzerdefinierte Token von Ihrem Authentifizierungsserver erhalten haben, übergeben Sie
es an
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
, um sich anzumelden
Nutzer:
auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => {
if (task.IsCanceled) {
Debug.LogError("SignInWithCustomTokenAsync was canceled.");
return;
}
if (task.IsFaulted) {
Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception);
return;
}
Firebase.Auth.AuthResult result = 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 mit den Anmeldedaten verknüpft, d. h. mit dem Nutzernamen und Passwort, der Telefonnummer oder den Informationen zum Authentifizierungsanbieter, mit denen sich der Nutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Nutzer in allen Apps in Ihrem Projekt zu identifizieren, unabhängig davon, wie er sich anmeldet.
-
In Ihren Apps können Sie die grundlegenden Profilinformationen des Nutzers über das Objekt Firebase.Auth.FirebaseUser
abrufen:
Firebase.Auth.FirebaseUser user = auth.CurrentUser;
if (user != null) {
string name = user.DisplayName;
string email = user.Email;
System.Uri photo_url = user.PhotoUrl;
// 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.
string uid = user.UserId;
}
In Firebase Realtime Database und Cloud Storage
Sicherheitsregeln können Sie
die eindeutige Nutzer-ID des angemeldeten Nutzers aus der Variablen auth
abrufen,
und steuern, auf welche Daten ein Nutzer zugreifen kann.
Sie können Nutzern erlauben, sich mit Mehrfachauthentifizierung in Ihrer App anzumelden
indem Sie die Anmeldedaten des Authentifizierungsanbieters mit einem
eines bestehenden Nutzerkontos.
Rufen Sie auf, um einen Nutzer abzumelden.
SignOut()
:
auth.SignOut();
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-08 (UTC).
[null,null,["Zuletzt aktualisiert: 2025-08-08 (UTC)."],[],[],null,["You can integrate Firebase Authentication with a custom authentication system by\nmodifying your authentication server to produce custom signed tokens when a user\nsuccessfully signs in. Your app receives this token and uses it to authenticate\nwith Firebase.\n\nBefore you begin\n\n1. Before you can use\n [Firebase Authentication](/docs/reference/unity/namespace/firebase/auth),\n you need to:\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\n - Register your Unity project with your Firebase project.\n - Add the [Firebase Unity SDK](/download/unity) (specifically, `FirebaseAuth.unitypackage`) to your Unity project.\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\n **Find detailed instructions for these initial setup steps in\n [Add Firebase to your Unity\n project](/docs/unity/setup#set_up_environment).**\n2. Get your project's server keys:\n 1. Go to the [Service Accounts](https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk) page in your project's settings.\n 2. Click *Generate New Private Key* at the bottom of the *Firebase Admin SDK* section of the *Service Accounts* page.\n 3. The new service account's public/private key pair is automatically saved on your computer. Copy this file to your authentication server.\n\nAuthenticate with Firebase The `FirebaseAuth` class is the gateway for all API calls. It is accessible through [FirebaseAuth.DefaultInstance](/docs/reference/unity/class/firebase/auth/firebase-auth#defaultinstance). \n\n```c#\nFirebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;\n```\n\nCall `Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync` with the token from\nyour authentication server.\n\n1. When users sign in to your app, send their sign-in credentials (for example, their username and password) to your authentication server. Your server checks the credentials and returns a [custom token](/docs/auth/admin/create-custom-tokens) if they are valid.\n2. After you receive the custom token from your authentication server, pass it to `Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync` to sign in the user: \n\n ```c#\n auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task =\u003e {\n if (task.IsCanceled) {\n Debug.LogError(\"SignInWithCustomTokenAsync was canceled.\");\n return;\n }\n if (task.IsFaulted) {\n Debug.LogError(\"SignInWithCustomTokenAsync 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 ```\n\nNext steps\n\nAfter a user signs in for the first time, a new user account is created and\nlinked to the credentials---that is, the user name and password, phone\nnumber, or auth provider information---the user signed in with. This new\naccount is stored as part of your Firebase project, and can be used to identify\na user across every app in your project, regardless of how the user signs in.\n\n- In your apps, you can get the user's basic profile information from the\n [`Firebase.Auth.FirebaseUser`](/docs/reference/unity/class/firebase/auth/firebase-user) object:\n\n ```c#\n Firebase.Auth.FirebaseUser user = auth.CurrentUser;\n if (user != null) {\n string name = user.DisplayName;\n string email = user.Email;\n System.Uri photo_url = user.PhotoUrl;\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 ```\n- In your Firebase Realtime Database and Cloud Storage\n [Security Rules](/docs/database/security/user-security), you can\n get the signed-in user's unique user ID from the `auth` variable,\n and use it to control what data a user can access.\n\nYou can allow users to sign in to your app using multiple authentication\nproviders by [linking auth provider credentials to an\nexisting user account.](/docs/auth/unity/account-linking)\n\nTo sign out a user, call [`SignOut()`](/docs/reference/unity/class/firebase/auth/firebase-auth#signout): \n\n```c#\nauth.SignOut();\n```"]]