Uwierzytelnij się w Firebase anonimowo, używając Unity

Możesz użyć Uwierzytelniania Firebase do tworzenia i używania tymczasowych anonimowych kont do uwierzytelniania w Firebase. Tych tymczasowych anonimowych kont można użyć, aby umożliwić użytkownikom, którzy jeszcze nie zarejestrowali się 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 powiązać jego dane logowania z kontem anonimowym, aby mógł kontynuować pracę z chronionymi danymi w przyszłych sesjach.

Zanim zaczniesz

  1. Zanim będzie można korzystać z uwierzytelniania Firebase , musisz dodać zestaw Firebase Unity SDK (konkretnie 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 .

  2. Jeśli nie połączyłeś jeszcze swojej aplikacji z projektem Firebase, zrób to z poziomu konsoli Firebase .
  3. Włącz anonimową autoryzację:
    1. W konsoli Firebase otwórz sekcję Auth .
    2. Na stronie Metody logowania włącz metodę logowania anonimowego .
    3. Opcjonalnie : jeśli uaktualniłeś swój projekt do Firebase Authentication with Identity Platform , możesz włączyć automatyczne czyszczenie. Po włączeniu tego ustawienia anonimowe konta starsze niż 30 dni będą automatycznie usuwane. W projektach z włączonym automatycznym czyszczeniem uwierzytelnianie anonimowe nie będzie już wliczane do limitów użytkowania ani limitów rozliczeniowych. Zobacz Automatyczne czyszczenie .

Uwierzytelniaj anonimowo w Firebase

Gdy wylogowany użytkownik korzysta z funkcji aplikacji, która wymaga uwierzytelnienia w Firebase, zaloguj się anonimowo, wykonując następujące czynności:

Klasa FirebaseAuth jest bramą dla wszystkich wywołań API. Jest dostępny przez FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
1. Wywołaj 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);
});

Konwertuj konto anonimowe na konto stałe

Gdy anonimowy użytkownik zarejestruje się w Twojej aplikacji, możesz zezwolić mu na kontynuowanie pracy na nowym koncie — na przykład możesz udostępnić produkty dodane przez użytkownika do koszyka przed rejestracją w nowym koszyk konta. Aby to zrobić, wykonaj następujące kroki:

  1. Gdy użytkownik zarejestruje się, dokończ proces logowania dla dostawcy uwierzytelniania użytkownika, ale nie wliczając w to wywołania jednej 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 zalogowanego użytkownika:

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

Automatyczne czyszczenie

Jeśli uaktualniłeś swój projekt do Firebase Authentication with Identity Platform , możesz włączyć automatyczne czyszczenie w konsoli Firebase. Po włączeniu tej funkcji zezwalasz Firebase na automatyczne usuwanie anonimowych kont starszych niż 30 dni. W projektach z włączonym automatycznym czyszczeniem uwierzytelnianie anonimowe nie będzie wliczane do limitów użytkowania ani limitów rozliczeniowych.

  • Wszelkie anonimowe konta utworzone po włączeniu automatycznego czyszczenia mogą zostać automatycznie usunięte w dowolnym momencie po 30 dniach od utworzenia.
  • Anonimowe konta utworzone przed włączeniem automatycznego czyszczenia będą kwalifikować się do automatycznego usuwania począwszy od 30 dni po włączeniu automatycznego czyszczenia.
  • Jeśli wyłączysz automatyczne czyszczenie, wszystkie anonimowe konta, które mają zostać usunięte, pozostaną zaplanowane do usunięcia. Konta te nie wliczają się do limitów użytkowania ani limitów rozliczeniowych.
  • Jeśli „zaktualizujesz” anonimowe konto, łącząc je z dowolną metodą logowania, konto nie zostanie automatycznie usunięte.

Jeśli przed włączeniem tej funkcji chcesz zobaczyć, ilu użytkowników będzie to miało wpływ, a Twój projekt został uaktualniony do uwierzytelniania Firebase z Identity Platform , możesz filtrować według is_anon w Cloud Logging .

Następne 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 .