Migracja z Google Identity Toolkit na platformę Identity Platform w Google Cloud

Najnowsza wersja pakietu Google Identity Toolkit została udostępniona jako Identity Platform oraz Uwierzytelnianie Firebase. W przyszłości prace nad funkcjami w Identity Toolkit zostaną zablokowane. zupełnie nowe funkcje będą tworzone w Identity Platform i Firebase Uwierzytelnianie. Zachęcamy deweloperów Identity Toolkit do przejścia na gdy tylko będzie to możliwe w ich aplikacjach.

Nowe funkcje

Identity Platform ma już znaczne ulepszenia funkcji Zestaw narzędzi Google Identity:

  • Nowa konsola administracyjna

    Identity Platform ma nowa konsola programisty który umożliwia wyświetlanie, modyfikowanie i usuwanie użytkowników; to może Ci się przydać debugowanie procesów logowania i rejestracji. Konsola umożliwia też konfigurowania metod uwierzytelniania i dostosowywania szablonów e-maili.

  • Nowe metody uwierzytelniania

    Identity Platform obsługuje standardy federacji firm, takie jak SAML, OIDC, które umożliwia skalowanie aplikacji i usług SaaS. Identity Platform oferuje pomoc techniczną dla dostawców takich jak GitHub, Microsoft czy Yahoo. Możesz użyć anonimowego logowania, aby utworzyć unikalny identyfikator użytkownika bez wymagać od użytkownika przeprowadzenia jakiegokolwiek procesu logowania lub rejestracji; pozwala możesz wykonywać uwierzytelnione wywołania interfejsu API tak samo jak w przypadku zwykłego użytkownika. Kiedy użytkownik zdecyduje się założyć konto, cała aktywność jest zachowywana dzięki ten sam identyfikator użytkownika. Jest to przydatne w sytuacjach takich jak zakupy po stronie serwera np. koszyków lub innych aplikacji, w których chcesz zaangażować użytkownika przed wysłaniem podczas rejestracji.

  • Niezawodne skalowanie dzięki gwarancji jakości usług i pomocy Cloud

    Usługa Identity Platform jest oparta na zaufanej infrastrukturze Google Gwarancja jakości usług i pomocą Google Cloud. Oznacza to, że można skalować usługi i polegać na Google w zakresie odporności i dostępności i skalowalność.

  • Dostęp do wszystkich usług Firebase

    Firebase to platforma mobilna, która pomaga szybko tworzyć wysokiej jakości aplikacji, zwiększać grono użytkowników i zarabiać więcej. Firebase składa się z: dodatkowe funkcje, które można dowolnie łączyć i dopasowywać do swoich potrzeb obejmuje infrastrukturę do: statystyki dotyczące urządzeń mobilnych, wiadomości w chmurze, baza danych czasu rzeczywistego, przechowywanie plików, hosting statyczny, konfiguracja zdalna, zgłaszanie awarii oraz Testy Androida.

  • Zaktualizowane interfejsy użytkownika

    Całkowicie przebudowaliśmy przepływy interfejsu w oparciu o najnowszy UX Google badania. Obejmuje to odzyskiwanie hasła, łączenie kont, nowe/istniejące procedury ujednoznacznienia konta, których kodowanie często zajmuje dużo czasu; debugowanie. Integruje się z technologią Smart Lock na hasła na Androida, co znacznie zwiększyło liczbę logowania się i rejestracji w przypadku aplikacji uczestniczących w programie. Oferuje również możliwość łatwego modyfikowania motywu dostosowania do aplikacji oraz i możliwości dostosowania Android oraz iOS zostały udostępnione na licencji open source.

  • Uproszczona konfiguracja serwera

    Zaobserwowaliśmy, że po wdrożeniu Identity Toolkit wielu deweloperów nie chce wdrażać proces odzyskiwania konta e-mail, który uniemożliwił użytkownikom przywrócenie konta do swoich kont, jeśli nie pamiętają hasła. Identity Platform może wysyłanie wiadomości e-mail weryfikacyjnych, resetowania hasła i wiadomości o zmianie hasła na adres Można łatwo dostosować użytkownika i tekst. użytkowników. Nie musisz też już hostować widżety interfejsu do hostingu przekierowań. wykonywania operacji zmiany hasła.

  • Nowe pakiety SDK

    Wszystkie interfejsy API serwera Identity Toolkit są teraz dostępne natywnie naszych bibliotek klienckich (Android, iOS, internet). Deweloperzy będą mogli podpisać nowych i starych użytkowników, dostęp do właściwości użytkownika, łączenie, aktualizowanie usuwanie kont, resetowanie haseł i wykonywanie innych czynności bez powiązania ze stałym interfejsem użytkownika. Jeśli wolisz, możesz ręcznie utworzyć własny proces logowania i w połączeniu z tym interfejsem API.

  • Zarządzanie sesjami w aplikacjach mobilnych

    Za pomocą Identity Toolkit aplikacje tworzyły własne stany sesji na podstawie początkowego zdarzenia uwierzytelniania z Identity Toolkit. Identity Platform używa usługa backendu, która pobiera token odświeżania pobierany z uwierzytelniania i wymienia je na godzinne tokeny dostępu dla Androida, iOS JavaScriptu. Gdy użytkownik zmieni hasło, tokeny odświeżania nie mogą już generować nowych tokenów dostępu, a to oznacza wyłączenie dostępu do czasu użytkownik ponownie uwierzytelnia się na tym urządzeniu.

Różnice funkcji

Niektóre funkcje Identity Toolkit nie są obecnie dostępne w usłudze Identity Platforma. Pozostałe funkcje zostały przeprojektowane i działają inaczej. Możesz zrezygnować z natychmiastowej migracji, jeśli te funkcje są ważne do aplikacji. W wielu przypadkach te funkcje mogą nie być ważne w przypadku Twojej aplikacji lub mogą wystąpić łatwe sytuacje zastępcze, które umożliwią kontynuowanie migracji.

Różnice po stronie serwera

Podstawowa usługa Identity Toolkit z bazowymi interfejsami API typu REST, kontem logikę weryfikacji i główną bazę danych użytkowników zostały jedynie nieznacznie zaktualizowane. Jednak niektóre funkcje i sposób integracji Identity Platform do usługi Google Cloud.

  • Dostawcy tożsamości

    Usługi PayPal i AOL nie są obsługiwane. Użytkownicy z kont od tych dostawców tożsamości nadal będzie można logować się w Twojej aplikacji za pomocą i skonfigurować hasło do konta.

  • Biblioteki serwerów

    Obecnie dostępne są pakiety Admin SDK, dostępne w językach Java, Node.js, Python, Go i C#.

  • E-maile do zarządzania kontem

    Wiadomości dotyczące resetowania hasła, weryfikowania adresu e-mail i zmiany adresu e-mail mogą być wykonywane przez Firebase lub przez dewelopera z własnym serwerem poczty. Obecnie szablony e-mail są ograniczone z interfejsu użytkownika, ale można ją też dodatkowo dostosować Pakiety Admin SDK

  • Potwierdzenie zmiany adresu e-mail

    Gdy użytkownik zdecyduje się zmienić adres e-mail w Identity Toolkit, wysyła e-mail na nowy adres, który zawiera link do kontynuowania tego e-maila w procesie zmiany adresu.

    Firebase potwierdza zmianę adresu e-mail, wysyłając na adres e-mail o wycofaniu zgody na adres stary adres e-mail z linkiem umożliwiającym cofnięcie zmiany.

  • Wdrażanie dostawcy tożsamości

    Identity Toolkit miał możliwość dodania dostawców tożsamości do Twojego logowania stopniowo je systematycznie, aby można było poeksperymentować z wpływem zapytań o pomoc. Ta funkcja została usunięta z Uwierzytelniania Firebase.

Różnice po stronie klienta

W usłudze Identity Platform funkcje udostępniane przez Google Identity Toolkit są podzielone można podzielić na 2 części:

  • Pakiety SDK klienta i serwera

    W usłudze Identity Platform funkcje udostępniane przez Identity Toolkit Interfejs API REST został dodany do pakietów SDK klientów dostępnych na Androida, iOS JavaScriptu. możesz używać pakietu SDK do logowania się i rejestrowania użytkowników; użytkownik dostępu informacje o profilu; łączyć, aktualizować i usuwać konta; i resetować hasła. za pomocą pakietu SDK klienta, zamiast komunikować się z usługą backendu Wywołania REST.

  • Widżet interfejsu

    Wszystkie przepływy w interfejsie użytkownika do zarządzania logowaniem, rejestracją, odzyskiwaniem haseł połączenia kont zostały przebudowane za pomocą pakietów SDK klienta i spakowane jako widżet logowania. Są one dostępne jako pakiety SDK typu open source iOS, Androida oraz Internet, pozwalają na całkowite dostosowanie przepływów w sposób niedostępny w przypadku Identity Toolkit.

Dodatkowe różnice:

  • Sesje i migracja

    Ponieważ sesje są zarządzane w różny sposób w Identity Toolkit i Identity czyli platformie, czyli istniejące sesje zostaną zakończone po aktualizację pakietu SDK, a użytkownicy będą musieli ponownie się zalogować.

Zanim zaczniesz

Zanim przeprowadzisz migrację z Identity Toolkit na Identity Platform, musi:

  1. Otwórz konsolę Cloud i wybierz swoją Projekt Identity Toolkit.

  2. W Marketplace wybierz Platforma tożsamości i wybierz „Włącz Identity Platform”.

  3. Otwórz Konta usługi. Tutaj możesz zobaczyć konto usługi, skonfigurowany wcześniej dla Identity Toolkit.

  4. Obok konta usługi kliknij Utwórz klucz. Następnie w Okno Utwórz klucz prywatny, ustaw typ klucza na JSON i kliknij Utwórz. Plik JSON zawierający dane logowania do konta usługi to pobrane filmy. Będzie Ci potrzebne do zainicjowania pakietu SDK w następnym kroku.

  5. Wróć do konsoli Google Cloud. W sekcji Dostawcy, w polu „E-mail/hasło” metoda logowania, otwórz stronę Szablony e-maili. Następnie możesz dostosować szablonów.

    w Identity Toolkit, gdy użytkownicy resetują hasła, zmieniają adresy e-mail lub adresy e-mail użytkowników były zweryfikowane, potrzebny był kod OOB serwera Identity Toolkit, a następnie wyślij kod użytkownikom e-mailem. Identity Platform wysyła e-maile na podstawie skonfigurowanych przez Ciebie szablonów bez wymagane dodatkowe działania.

  6. Opcjonalnie: jeśli chcesz uzyskać dostęp do usług Identity Platform na należy zainstalować pakiet SDK Firebase.

    1. Pakiet SDK Admin Node.js możesz zainstalować za pomocą pakietu npm:

      $ npm init
      $ npm install --save firebase-admin
      
    2. Dostęp do Firebase możesz uzyskać w kodzie za pomocą:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

Następnie przeprowadź migrację dla odpowiedniej platformy aplikacji: Android, iOS, internet.

Serwery i JavaScript

Ważne zmiany

Istnieje wiele dodatkowych różnic w implementacji Identity Platform z Identity Toolkit.

  • Zarządzanie sesjami internetowymi

    Wcześniej, gdy użytkownik uwierzytelniał się za pomocą Widżet Identity Toolkit, zapisany dla użytkownika plik cookie, który posłużył do zaoszczędź sesję. Ten plik cookie działał przez dwa tygodnie i pozwolił użytkownikowi użyć widżetu zarządzania kontem do zmiany hasła i adresu e-mail. Niektóre witryny używały tego pliku cookie do uwierzytelniania wszystkich pozostałych żądań stron w witrynie. Inne witryny używały tych plików cookie do tworzenia własnych plików cookie do zarządzania plikami cookie.

    Zarządzanie pakietami SDK klienta Identity Platform Tokeny identyfikatorów i współpracuj z backendem Identity Platform, aby zapewnić aktualność sesji. Backend wygasa sesje po zmianie ważnych informacji na koncie (np. użytkownika hasła). Tokeny tożsamości nie są automatycznie ustawiane jako pliki cookie w kliencie internetowym, a ich czas trwania wynosi tylko godzinę. Chyba że: chcesz, aby sesje trwały tylko godzinę, tokeny tożsamości nie są odpowiednie, używany jako plik cookie do weryfikowania wszystkich żądań stron. Zamiast tego Musisz skonfigurować detektor po zalogowaniu się użytkownika, pobierz token tożsamości, zweryfikuj token i utwórz do własnych plików cookie za pomocą systemu zarządzania plikami cookie Twojej platformy.

    Musisz ustawić czas trwania sesji w pliku cookie na podstawie do bezpieczeństwa Twojej aplikacji.

  • Proces logowania w przeglądarce

    Wcześniej podczas logowania użytkownicy byli przekierowywani na stronę accountchooser.com zainicjowane w celu uzyskania informacji o identyfikatorze, którego chciał użyć użytkownik. Platforma tożsamości Proces interfejsu użytkownika rozpoczyna się teraz od listy metod logowania, w tym adresu e-mail. która trafia do accountchooser.com w przypadku witryn i korzysta Interfejs hintRequest API został włączony na urządzeniu z Androidem. Dodatkowo adresy e-mail nie są już wymagane w interfejsie. Ułatwi to obsługę anonimowych użytkowników, niestandardowych użytkowników uwierzytelniania lub od dostawców, którzy nie potrzebują adresów e-mail.

  • Widżet zarządzania kontem

    Ten widżet zawiera interfejs użytkownika, w którym mogą zmieniać adresy e-mail, hasła pozwalają odłączyć ich konta od dostawców tożsamości. Obecnie jest w trakcie opracowywania.

  • Przycisk/widżet logowania

    Widżety, takie jak przycisk logowania i karta użytkownika, nie są już dostępne. Ta można łatwo utworzyć za pomocą interfejsu Firebase Authentication API.

  • Brak parametru signOutUrl

    Musisz zadzwonić pod numer firebase.auth.signOut() i przeprowadzić wywołanie zwrotne.

  • Brak elementu oobActionUrl

    Wysyłanie e-maili jest teraz obsługiwane przez Identity Platform i konfigurowane w konsoli Firebase.

  • Dostosowywanie CSS

    Widżet interfejsu korzysta ze stylu Material Design Lite, dynamicznie dodaje animacje Material Design.

Krok 1. Zmień kod serwera

  1. Jeśli Twój serwer korzysta z tokena Identity Toolkit (ważnego przez 2 tygodnie), do zarządzania sesjami użytkownika internetowego, musisz przekonwertować serwer tak, aby korzystał z własnych .

    1. Zaimplementuj punkt końcowy dla weryfikacji tokena tożsamości, oraz plik cookie sesji użytkownika. Aplikacja kliencka wysyła Token identyfikatora Firebase dla tego punktu końcowego.
    2. Jeśli żądanie przychodzące zawiera Twój plik cookie sesji, możesz uznanie użytkownika za uwierzytelnione. W przeciwnym razie traktuj żądanie jako brak uwierzytelnienia.
    3. Jeśli nie chcesz, aby żaden z Twoich użytkowników utracił dostęp do zalogowanych użytkowników sesji, poczekaj 2 tygodnie na uzyskanie wszystkich tokenów Identity Toolkit wygaśnie, lub przeprowadź weryfikację przy użyciu 2 tokenów dla swojej aplikacji internetowej. jak opisano poniżej w kroku 3.
  2. Tokeny identyfikatorów różnią się od Identity Toolkit musisz zaktualizować reguły ich weryfikacji. Zainstaluj Pakiet Admin SDK do serwera, lub, jeśli używasz języka nieobsługiwanego przez pakiet Admin SDK, pobierz bibliotekę weryfikacji tokena JWT. dla Twojego środowiska zweryfikować token.

  3. Przy pierwszym wprowadzeniu tych zmian możesz nadal mieć ścieżki kodu, korzystać z tokenów Identity Toolkit. Jeśli masz aplikacje na iOS lub Androida, użytkownicy będą musieli uaktualnić aplikację do nowej wersji, więc działają nowe ścieżki kodu. Jeśli nie chcesz wymuszać na użytkownikach aktualizacji Twojej aplikacji, możesz dodać dodatkowy mechanizm weryfikacji serwera, który sprawdza token i określa, czy musi używać pakietu SDK Firebase czy SDK Identity Toolkit w celu walidacji tokena. Jeśli masz tylko sieć wszystkie nowe żądania uwierzytelniania będą przenoszone do Identity Platform, więc wystarczy użyć tokena identyfikatora. metod weryfikacji.

Zobacz materiały referencyjne na temat interfejsu Web API.

Krok 2. Zaktualizuj kod HTML

  1. Dodaj kod inicjowania aplikacji:

    1. Otwórz projekt w Konsola Cloud.
    2. W: providers kliknij Application Setup Details (Szczegóły konfiguracji aplikacji). Fragment kodu, który inicjuje Identity Platform.
    3. Skopiuj fragment kodu inicjowania i wklej go na swojej stronie internetowej.
  2. Dodaj widżet uwierzytelniania do aplikacji:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. Usuń pakiet SDK Identity Toolkit z aplikacji.

  4. Jeśli do zarządzania sesjami używany był token identyfikatora pakietu tożsamości, musi wprowadzić te zmiany po stronie klienta:

    1. Po zalogowaniu się przy użyciu Identity Platform uzyskaj token identyfikatora: Dzwonię pod firebase.auth().currentUser.getToken().

    2. Wyślij token identyfikatora do serwera backendu, zweryfikuj go i wygeneruj przez własny plik cookie sesji.

      Nie polegaj wyłącznie na pliku cookie sesji w przypadku lub wysyłania uwierzytelnionych żądań edycji do serwera. Ty będzie musiał podać dodatkowe sfałszowanie żądania z innej witryny (CSRF) i ochrony danych.

      Jeśli platforma nie zapewnia ochrony CSRF, jednym ze sposobów będzie to uzyskanie tokena tożsamości zalogowanego użytkownika za pomocą getToken() i dołączaj token do każdego żądania (sesja jest też domyślnie wysyłany). Następnie należy zweryfikować token za pomocą pakietu Admin SDK oprócz sprawdzania plików cookie sesji, które ukończone przez Twoją platformę backendu. Utrudni to Aby zakończyły się sukcesem ataków CSRF, token identyfikatora jest przechowywany tylko przy użyciu pamięci masowej, a nie w plikach cookie.

    3. Tokeny Identity Toolkit są ważne przez 2 tygodnie. Możesz że w ciągu ostatnich dwóch tygodni możesz też może być dłuższy lub krótszy w zależności od wymagań bezpieczeństwa aplikacji. Gdy użytkownik się wyloguje, wyczyść plik cookie sesji.

Krok 3. Zaktualizuj przekierowania dostawcy tożsamości

  1. W konsoli Google Cloud: otwórz sekcję Provider (Dostawcy). .

  2. W przypadku każdego obsługiwanego dostawcy logowania sfederowanego wykonaj te czynności:

    1. Kliknij nazwę dostawcy logowania.
    2. Skopiuj identyfikator URI przekierowania OAuth.
    3. Zaktualizuj przekierowanie OAuth w konsoli programisty dostawcy logowania Identyfikator URI.

Android

Krok 1. Dodaj Identity Platform do swojej aplikacji za pomocą Firebase

  1. Otwórz aplikację Cloud Console, wybierz swój projekt Identity Toolkit.

  2. Na stronie Dostawcy kliknij Szczegóły konfiguracji aplikacji, wybierz Android i kliknij Get Started in Firebase (Rozpocznij w Firebase). W oknie Dodaj Firebase podaj nazwę pakietu aplikacji i podpis. odcisk cyfrowy certyfikatu i kliknij Dodaj aplikację. google-services.json który zostanie pobrany na komputer.

  3. Skopiuj plik konfiguracji do katalogu głównego modułu swojej aplikacji na Androida. Ten plik konfiguracji zawiera informacje o projekcie i kliencie OAuth Google.

  4. W pliku build.gradle na poziomie projektu (<var>your-project</var>/build.gradle), podaj nazwę pakietu aplikacji w sekcję defaultConfig:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. Także w pliku build.gradle na poziomie projektu dodaj zależność, która ma zostać uwzględniona wtyczka google-services:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. W pliku build.gradle na poziomie aplikacji (<var>my-project</var>/<var>app-module</var>/build.gradle), dodaj za wtyczką Androida do obsługi Gradle, aby włączyć wtyczka google-services:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

    Wtyczka google-services wykorzystuje plik google-services.json do konfiguracji Twoją aplikację, aby mogła korzystać z Firebase.

  7. Także w pliku build.gradle na poziomie aplikacji dodaj Uwierzytelnianie Firebase. zależność:

    compile 'com.google.firebase:firebase-auth:23.0.0'
    compile 'com.google.android.gms:play-services-auth:21.2.0'
    

Krok 2. Usuń pakiet SDK Identity Toolkit

  1. Usuń konfigurację Identity Toolkit z AndroidManifest.xml . Te informacje są zawarte w pliku google-service.json oraz wczytywane przez wtyczkę google-services.
  2. Usuń pakiet SDK Identity Toolkit z aplikacji.

Krok 3. Dodaj FirebaseUI do aplikacji

  1. Dodaj Uwierzytelnianie FirebaseUI. do Twojej aplikacji.

  2. Zastąp wywołania pakietu SDK Identity Toolkit w swojej aplikacji wywołaniami FirebaseUI.

iOS

Krok 1. Dodaj Firebase do swojej aplikacji

  1. Dodaj pakiet SDK klienta do aplikacji, uruchamiając te polecenia:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Otwórz aplikację Cloud Console, wybierz swój projekt Identity Toolkit.

  3. Na stronie Dostawcy kliknij Application setup details (Szczegóły konfiguracji aplikacji), a następnie wybierz iOS. a następnie kliknij Get Started in Firebase (Rozpocznij w Firebase). W oknie Dodaj Firebase podaj nazwę pakietu aplikacji i odcisk cyfrowy certyfikatu podpisywania oraz kliknij Add App (Dodaj aplikację). Plik konfiguracji google-services.json to wtedy pobrane na komputer. W oknie Dodaj Firebase podaj identyfikatora pakietu i identyfikatora App Store, a następnie kliknij Dodaj aplikację. Plik konfiguracyjny GoogleService-Info.plist zostanie pobrany na komputera. Jeśli masz w projekcie wiele identyfikatorów pakietów, każdy z nich musi zostać połączona w konsoli Firebase, aby mogła mieć własną GoogleService-Info.plist.

  4. Skopiuj plik konfiguracji do katalogu głównego projektu Xcode i dodaj go do wszystkie cele.

Krok 2. Usuń pakiet SDK Identity Toolkit

  1. Usuń GoogleIdentityToolkit z pliku Podfile aplikacji.
  2. Uruchom polecenie pod install.

Krok 3. Dodaj FirebaseUI do aplikacji

  1. Dodaj Uwierzytelnianie FirebaseUI. do Twojej aplikacji.

  2. Zastąp wywołania pakietu SDK Identity Toolkit w swojej aplikacji wywołaniami FirebaseUI.