Uwierzytelniaj anonimowo w Firebase za pomocą Unity

Możesz używać Firebase Authentication do tworzenia i używania 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 zabezpieczeń. Jeśli anonimowy użytkownik zdecyduje się zarejestrować w Twojej aplikacji, możesz połączyć jego dane logowania z kontem anonimowym, aby mógł w przyszłości nadal pracować z chronionymi danymi.

Zanim zaczniesz

  1. Zanim zaczniesz korzystać z Firebase Authentication, musisz dodać do projektu w Unity Firebase Unity SDK (a konkretnie FirebaseAuth.unitypackage).

    Szczegółowe instrukcje dotyczące tych początkowych kroków konfiguracji znajdziesz w artykule Dodawanie Firebase do projektu Unity.

  2. Jeśli nie masz jeszcze połączonej aplikacji z projektem w Firebase, zrób to w Firebase konsoli.
  3. Włącz uwierzytelnianie anonimowe:
    1. W Firebasekonsoli otwórz Bezpieczeństwo > Uwierzytelnianie.
    2. Na karcie Sign-in method (Metoda logowania) włącz dostawcę logowania Anonymous (Anonimowe).
    3. Opcjonalnie: jeśli Twój projekt został uaktualniony do wersji Firebase Authentication with Identity Platform, możesz włączyć automatyczne czyszczenie. Gdy włączysz to ustawienie, anonimowe konta założone ponad 30 dni temu będą automatycznie usuwane. W projektach z włączonym automatycznym czyszczeniem anonimowe uwierzytelnianie nie będzie już wliczane do limitów wykorzystania ani limitów płatności. Zobacz Automatyczne czyszczenie.

Anonimowe uwierzytelnianie w Firebase

Gdy wylogowany użytkownik korzysta z funkcji aplikacji, która wymaga uwierzytelniania w Firebase, zaloguj go anonimowo, wykonując te czynności:

Klasa FirebaseAuth jest bramą dla wszystkich wywołań interfejsu API. Jest on dostępny za pomocą FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
1. Zadzwoń pod numer 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 zezwolić mu na kontynuowanie pracy na nowym koncie. Możesz na przykład sprawić, że produkty dodane przez użytkownika do koszyka na zakupy przed rejestracją będą dostępne w koszyku na zakupy na nowym koncie. Aby to zrobić, wykonaj te czynności:

  1. Gdy użytkownik się zarejestruje, dokończ proces logowania w przypadku dostawcy uwierzytelniania użytkownika, ale nie wywołuj żadnej z metod Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsync. Na przykład uzyskaj token identyfikatora Google użytkownika, token dostępu do Facebooka lub adres e-mail i hasło.
  2. Uzyskaj Firebase.Auth.Credential dla nowego dostawcy uwierzytelniania:

  3. Przekaż obiekt Firebase.Auth.Credential do metody LinkWithCredentialAsync użytkownika logującego się:

Jeśli wywołanie LinkWithCredentialAsync się powiedzie, nowe konto użytkownika będzie mieć dostęp do danych Firebase konta anonimowego.

Automatyczne czyszczenie

Jeśli Twój projekt został uaktualniony do wersji Firebase Authentication with Identity Platform, możesz włączyć automatyczne czyszczenie w konsoli Firebase. Gdy włączysz tę funkcję, zezwolisz Firebase na automatyczne usuwanie anonimowych kont starszych niż 30 dni. W projektach z włączonym automatycznym czyszczeniem anonimowe uwierzytelnianie nie będzie wliczane do limitów wykorzystania ani limitów płatności.

  • Wszystkie anonimowe konta 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 anonimowe konta zaplanowane do usunięcia pozostaną zaplanowane do usunięcia.
  • Jeśli „uaktualnisz” anonimowe konto, łącząc je z dowolną metodą logowania, nie zostanie ono 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 wersji 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.