Za pomocą Firebase Authentication możesz tworzyć i używać tymczasowych kont anonimowych do uwierzytelniania w Firebase. Tych tymczasowych kont anonimowych można używać, aby umożliwić użytkownikom, którzy nie zarejestrowali się jeszcze w Twojej aplikacji, pracę z danymi chronionymi przez reguły bezpieczeństwa. Jeśli anonimowy użytkownik zdecyduje się zarejestrować w Twojej aplikacji, możesz połączyć jego dane logowania z kontem anonimowym, aby mógł kontynuować pracę z chronionymi danymi w przyszłych sesjach.
Zanim zaczniesz
-
Aby móc korzystać z Firebase Authentication, musisz dodać pakiet Firebase Unity SDK (a konkretnie,
FirebaseAuth.unitypackage) do projektu w Unity.Szczegółowe instrukcje dotyczące tych wstępnych kroków znajdziesz w artykule Dodawanie Firebase do projektu w Unity.
- Jeśli nie masz jeszcze połączonej aplikacji z projektem w Firebase, zrób to w konsoli Firebase.
-
Włącz uwierzytelnianie anonimowe:
- W konsoli Firebase, otwórz Zabezpieczenia > Uwierzytelnianie.
- Na karcie Metoda logowania włącz dostawcę logowania Anonimowe.
- Opcjonalnie: jeśli Twój projekt został uaktualniony do Firebase Authentication with Identity Platform, możesz włączyć automatyczne czyszczenie. Gdy włączysz to ustawienie, konta anonimowe starsze niż 30 dni będą automatycznie usuwane. W projektach z włączonym automatycznym czyszczeniem uwierzytelnianie anonimowe nie będzie się wliczać do limitów wykorzystania ani limitów płatności. Więcej informacji znajdziesz w sekcji Automatyczne czyszczenie.
Anonimowe uwierzytelnianie w Firebase
Gdy wylogowany użytkownik korzysta z funkcji aplikacji, która wymaga uwierzytelnienia w Firebase, zaloguj go anonimowo, wykonując te czynności:
KlasaFirebaseAuth jest bramą do wszystkich wywołań interfejsu API.
Jest ona dostępna przez FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase.Auth.FirebaseAuth.SignInAnonymouslyAsync.
auth.SignInAnonymouslyAsync().ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAnonymouslyAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAnonymouslyAsync 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); });
Przekształcanie konta anonimowego w konto stałe
Gdy anonimowy użytkownik zarejestruje się w Twojej aplikacji, możesz umożliwić mu kontynuowanie pracy na nowym koncie. Możesz na przykład udostępnić na nowym koncie użytkownika elementy, które dodał do koszyka na zakupy przed rejestracją. Aby to zrobić, wykonaj te czynności:
- Gdy użytkownik się zarejestruje, wykonaj proces logowania u dostawcy uwierzytelniania użytkownika, ale nie wywołuj żadnej z
Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsyncmetod. Możesz na przykład pobrać token identyfikatora Google użytkownika, token dostępu do Facebooka lub adres e-mail i hasło. Pobierz
Firebase.Auth.Credentialdla nowego dostawcy uwierzytelniania:Przekaż obiekt
Firebase.Auth.Credentialdo metodyLinkWithCredentialAsynczalogowanego użytkownika:
Jeśli wywołanie LinkWithCredentialAsync się powiedzie, nowe konto użytkownika będzie mogło uzyskać dostęp do danych Firebase konta anonimowego.
Automatyczne czyszczenie
Jeśli Twój projekt został uaktualniony do Firebase Authentication with Identity Platform, możesz włączyć automatyczne czyszczenie w konsoli Firebase. Gdy włączysz tę funkcję, zezwolisz Firebase na automatyczne usuwanie kont anonimowych starszych niż 30 dni. W projektach z włączonym automatycznym czyszczeniem uwierzytelnianie anonimowe nie będzie się wliczać do limitów wykorzystania ani limitów płatności.
- Wszystkie konta anonimowe utworzone po włączeniu automatycznego czyszczenia mogą zostać automatycznie usunięte w dowolnym momencie po upływie 30 dni od ich utworzenia.
- Istniejące konta anonimowe będą kwalifikować się do automatycznego usunięcia po 30 dniach od włączenia automatycznego czyszczenia.
- Jeśli wyłączysz automatyczne czyszczenie, wszystkie konta anonimowe zaplanowane do usunięcia pozostaną zaplanowane do usunięcia.
- Jeśli "uaktualnisz" konto anonimowe, łącząc je z dowolną metodą logowania, konto nie zostanie automatycznie usunięte.
Jeśli przed włączeniem tej funkcji chcesz sprawdzić, ilu użytkowników to dotyczy, a Twój projekt został
uaktualniony do Firebase Authentication with Identity Platform, możesz filtrować według
is_anon w Cloud
Logging.
Dalsze kroki
Teraz, gdy użytkownicy mogą uwierzytelniać się w Firebase, możesz kontrolować ich dostęp do danych w bazie danych Firebase za pomocą reguł Firebase.