Zanim zaczniesz
Zanim będziesz mógł skorzystać z uwierzytelniania Firebase , musisz:
- Zarejestruj swój projekt Unity w projekcie Firebase.
- Dodaj pakiet SDK Firebase Unity (w szczególności
FirebaseAuth.unitypackage
) do swojego projektu Unity.
Szczegółowe instrukcje dotyczące tych początkowych kroków konfiguracji znajdziesz w artykule Dodawanie Firebase do projektu Unity .
- Zdobądź klucze serwera swojego projektu:
- Przejdź do strony Konta usług w ustawieniach projektu.
- Kliknij opcję Wygeneruj nowy klucz prywatny u dołu sekcji pakietu Firebase Admin SDK na stronie Konta usług .
- Para kluczy publiczny/prywatny nowego konta usługi zostanie automatycznie zapisana na Twoim komputerze. Skopiuj ten plik na swój serwer uwierzytelniania.
Uwierzytelnij się w Firebase
KlasaFirebaseAuth
jest bramą dla wszystkich wywołań API. Jest dostępny poprzez FirebaseAuth.DefaultInstance .Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Wywołaj Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
za pomocą tokena z serwera uwierzytelniania.
- Gdy użytkownicy logują się do Twojej aplikacji, wyślij ich dane logowania (na przykład nazwę użytkownika i hasło) do serwera uwierzytelniania. Twój serwer sprawdza poświadczenia i zwraca niestandardowy token, jeśli są prawidłowe.
- Po otrzymaniu tokenu niestandardowego z serwera uwierzytelniania przekaż go do
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
, aby zalogować użytkownika: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); });
Następne kroki
Gdy użytkownik zaloguje się po raz pierwszy, zostanie utworzone nowe konto użytkownika i powiązane z poświadczeniami — czyli nazwą użytkownika i hasłem, numerem telefonu lub informacjami o dostawcy uwierzytelniania — za pomocą których użytkownik się zalogował. To nowe konto jest przechowywane jako część Twojego projektu Firebase i może służyć do identyfikowania użytkownika w każdej aplikacji w Twoim projekcie, niezależnie od tego, w jaki sposób użytkownik się loguje.
W Twoich aplikacjach możesz uzyskać podstawowe informacje o profilu użytkownika z obiektu
Firebase.Auth.FirebaseUser
: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; }
W regułach bezpieczeństwa bazy danych Firebase Realtime i Cloud Storage możesz uzyskać unikalny identyfikator zalogowanego użytkownika ze zmiennej
auth
i użyć go do kontrolowania, do jakich danych użytkownik może uzyskać dostęp.
Możesz zezwolić użytkownikom na logowanie się do aplikacji przy użyciu wielu dostawców uwierzytelniania, łącząc poświadczenia dostawcy uwierzytelniania z istniejącym kontem użytkownika.
Aby wylogować użytkownika, wywołaj SignOut()
:
auth.SignOut();