Nutzer erstellen
Sie erstellen einen neuen Nutzer in Ihrem Firebase-Projekt, indem Sie die Methode
CreateUserWithEmailAndPassword
oder einen Nutzer zum ersten Mal mit einer föderierten Identität anmelden
wie Google Log-in oder
Facebook-Anmeldung.
Sie können neue passwortauthentifizierte Nutzer auch über die Seite „Nutzer“ im Bereich „Authentifizierung“ der Firebase-Konsole erstellen.
Aktuell angemeldeten Nutzer abrufen
Die empfohlene Methode zum Abrufen des aktuellen Nutzers besteht darin, einen Listener auf der Auth-Objekt:
Firebase.Auth.FirebaseAuth auth; Firebase.Auth.FirebaseUser user; // Handle initialization of the necessary firebase modules: void InitializeFirebase() { Debug.Log("Setting up Firebase Auth"); auth = Firebase.Auth.FirebaseAuth.DefaultInstance; auth.StateChanged += AuthStateChanged; AuthStateChanged(this, null); } // Track state changes of the auth object. void AuthStateChanged(object sender, System.EventArgs eventArgs) { if (auth.CurrentUser != user) { bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null; if (!signedIn && user != null) { Debug.Log("Signed out " + user.UserId); } user = auth.CurrentUser; if (signedIn) { Debug.Log("Signed in " + user.UserId); } } } // Handle removing subscription and reference to the Auth instance. // Automatically called by a Monobehaviour after Destroy is called on it. void OnDestroy() { auth.StateChanged -= AuthStateChanged; auth = null; }
Durch die Verwendung eines Listeners stellen Sie sicher, dass sich das Auth-Objekt nicht in einem Zwischen- z. B. Initialisierung, wenn Sie den aktuellen Nutzer abrufen.
Sie können den aktuell angemeldeten Nutzer auch über CurrentUser
abrufen. Wenn ein Nutzer nicht angemeldet ist, wird für CurrentUser
„null“ zurückgegeben. Wenn ein Nutzer abgemeldet ist, wird für IsValid()
des Nutzers „false“ zurückgegeben.
Anmeldedaten eines Nutzers speichern
Die Anmeldedaten des Nutzers werden im lokalen Schlüsselspeicher gespeichert, nachdem ein Nutzer ist angemeldet. Der lokale Cache der Nutzeranmeldedaten kann gelöscht werden, indem sich der Nutzer abmeldet. Der Schlüsselspeicher ist plattformspezifisch:
- Apple-Plattformen: Schlüsselbundverwaltung
- Android: Android Keystore
- Windows: Credential Management API
- OS X: Schlüsselbundverwaltung
- Linux: libsecret – Der Nutzer muss das Secret installiert haben.
Nutzerprofil abrufen
Verwenden Sie zum Abrufen der Profilinformationen eines Nutzers die Zugriffsmethoden einer Instanz von
Firebase.Auth.FirebaseUser
Beispiel:
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; }
Anbieterspezifische Profilinformationen eines Nutzers abrufen
Wenn Sie die Profilinformationen von den mit einem
verwenden Sie die Methode ProviderData
. Beispiel:
Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { foreach (var profile in user.ProviderData) { // Id of the provider (ex: google.com) string providerId = profile.ProviderId; // UID specific to the provider string uid = profile.UserId; // Name, email address, and profile photo Url string name = profile.DisplayName; string email = profile.Email; System.Uri photoUrl = profile.PhotoUrl; } }
Nutzerprofil aktualisieren
Sie können die grundlegenden Profilinformationen eines Nutzers aktualisieren, also den Anzeigenamen des Nutzers
und Profilfotos mit der Methode UpdateUserProfile
. Beispiel:
Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { Firebase.Auth.UserProfile profile = new Firebase.Auth.UserProfile { DisplayName = "Jane Q. User", PhotoUrl = new System.Uri("https://example.com/jane-q-user/profile.jpg"), }; user.UpdateUserProfileAsync(profile).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("UpdateUserProfileAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("UpdateUserProfileAsync encountered an error: " + task.Exception); return; } Debug.Log("User profile updated successfully."); }); }
E-Mail-Adresse eines Nutzers festlegen
Sie können die E-Mail-Adresse eines Nutzers mit der Methode UpdateEmail
festlegen. Beispiel:
Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { user.UpdateEmailAsync("user@example.com").ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("UpdateEmailAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("UpdateEmailAsync encountered an error: " + task.Exception); return; } Debug.Log("User email updated successfully."); }); }
Bestätigungs-E-Mail an Nutzer senden
Sie können eine E-Mail zur Bestätigung der Adresse an einen Nutzer mit der
SendEmailVerification
-Methode. Beispiel:
Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { user.SendEmailVerificationAsync().ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SendEmailVerificationAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SendEmailVerificationAsync encountered an error: " + task.Exception); return; } Debug.Log("Email sent successfully."); }); }
Sie können die E-Mail-Vorlage, die im Abschnitt „Authentifizierung“ der Firebase Console verwendet wird, auf der Seite „E-Mail-Vorlagen“ anpassen. Weitere Informationen finden Sie in der Firebase-Hilfe unter E-Mail-Vorlagen.
Passwort eines Nutzers festlegen
Sie können das Passwort eines Nutzers mit der Methode UpdatePassword
festlegen. Beispiel:
Firebase.Auth.FirebaseUser user = auth.CurrentUser; string newPassword = "SOME-SECURE-PASSWORD"; if (user != null) { user.UpdatePasswordAsync(newPassword).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("UpdatePasswordAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("UpdatePasswordAsync encountered an error: " + task.Exception); return; } Debug.Log("Password updated successfully."); }); }
E-Mail zum Zurücksetzen des Passworts senden
Du kannst eine E-Mail zum Zurücksetzen des Passworts an einen Nutzer mit der SendPasswordResetEmail
senden.
. Beispiel:
string emailAddress = "user@example.com"; if (user != null) { auth.SendPasswordResetEmailAsync(emailAddress).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SendPasswordResetEmailAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SendPasswordResetEmailAsync encountered an error: " + task.Exception); return; } Debug.Log("Password reset email sent successfully."); }); }
Sie können die E-Mail-Vorlage, die im Abschnitt „Authentifizierung“ der Firebase Console verwendet wird, auf der Seite „E-Mail-Vorlagen“ anpassen. Weitere Informationen finden Sie unter E-Mail-Vorlagen in Firebase-Hilfe.
Sie können E-Mails zum Zurücksetzen des Passworts auch über die Firebase-Konsole senden.
Nutzer löschen
Sie können ein Nutzerkonto mit der Methode Delete
löschen. Beispiel:
Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { user.DeleteAsync().ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("DeleteAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("DeleteAsync encountered an error: " + task.Exception); return; } Debug.Log("User deleted successfully."); }); }
Sie können Nutzer auch in der Firebase Console auf der Seite „Nutzer“ im Abschnitt „Authentifizierung“ löschen.
Nutzer neu authentifizieren
Einige sicherheitsrelevante Aktionen, z. B. Löschen eines Kontos, Festlegen einer primären E-Mail-Adresse und Passwort ändern: Der Nutzer muss angemeldet sind. Wenn Sie eine dieser Aktionen ausführen und sich der Nutzer angemeldet hat allzu lange her ist, schlägt die Aktion fehl.
Nutzer in diesem Fall durch Abrufen neuer Anmeldedaten noch einmal authentifizieren
vom Nutzer und übergibt die Anmeldedaten an Reauthenticate
. Beispiel:
Firebase.Auth.FirebaseUser user = auth.CurrentUser; // Get auth credentials from the user for re-authentication. The example below shows // email and password credentials but there are multiple possible providers, // such as GoogleAuthProvider or FacebookAuthProvider. Firebase.Auth.Credential credential = Firebase.Auth.EmailAuthProvider.GetCredential("user@example.com", "password1234"); if (user != null) { user.ReauthenticateAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("ReauthenticateAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("ReauthenticateAsync encountered an error: " + task.Exception); return; } Debug.Log("User reauthenticated successfully."); }); }
Nutzerkonten importieren
Sie können Nutzerkonten aus einer Datei in Ihr Firebase-Projekt importieren, indem Sie die
Den Befehl auth:import
der Firebase CLI Beispiel:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14