Dodawanie weryfikacji numeru telefonu w Firebase do aplikacji na Androida

1. Przegląd

Weryfikacja numeru telefonu w Firebase (Firebase PNV lub FPNV) to szybsza i bezpieczniejsza metoda weryfikacji numerów telefonów. W przeciwieństwie do weryfikacji opartej na SMS-ach, która wymaga od użytkowników otrzymania i wpisania kodu z wiadomości tekstowej, Firebase PNV działa poprzez pobieranie numeru telefonu przypisanego do karty SIM w urządzeniu bezpośrednio od połączonego operatora za pomocą jednego kliknięcia. Zmniejsza to niedogodności dla użytkownika końcowego, zwiększa niezawodność, ponieważ nie zależy od dostarczania wiadomości SMS, i eliminuje wektory nadużyć powszechnie wykorzystywane podczas korzystania z SMS-ów.

Wyskakujące okienko PNV Firebase

W tym ćwiczeniu dowiesz się, jak utworzyć opartego na AI agenta głosowego „Wyszukiwarka restauracji”, który używa weryfikacji numeru telefonu w Firebase do weryfikacji numeru telefonu użytkownika końcowego przed potwierdzeniem rezerwacji stolika.

Wymagania wstępne

  • Najnowsza wersja Android Studio
  • Urządzenie z Androidem lub emulator z poziomem interfejsu API 26 lub nowszym

Czego się nauczysz

  • Konfigurowanie projektu w Firebase z weryfikacją numeru telefonu w Firebase.
  • Używanie weryfikacji numeru telefonu w Firebase w trybie testowym do tworzenia prototypów bez konta rozliczeniowego ani prawdziwej karty SIM.
  • Integrowanie pakietu Firebase PNV SDK z aplikacją na Androida.
  • Weryfikowanie numeru telefonu za pomocą interfejsu API z jednym wywołaniem.
  • (Opcjonalnie) Przygotowywanie aplikacji do wdrożenia w wersji produkcyjnej.

2. Konfigurowanie przykładowego projektu

Tworzenie projektu w Firebase

  1. Zaloguj się w konsoli Firebase za pomocą konta Google.
  2. Kliknij przycisk, aby utworzyć nowy projekt, a następnie wpisz jego nazwę (np. Tera Bites).
  3. Kliknij Dalej.
  4. Jeśli pojawi się taka prośba, zapoznaj się z warunkami korzystania z Firebase i zaakceptuj je, a następnie kliknij Dalej.
  5. (Opcjonalnie) Włącz pomoc AI w konsoli Firebase (nazywaną „Gemini w Firebase”).
  6. W tym ćwiczeniu nie potrzebujesz Google Analytics, więc wyłącz opcję Google Analytics.
  7. Kliknij Utwórz projekt, poczekaj na jego utworzenie, a następnie kliknij Dalej.

Pobieranie kodu

Uruchom te polecenia, aby sklonować przykładowy kod na potrzeby tego ćwiczenia:

git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd codelabs/firebase-pnv-android

Otwórz katalog firebase-pnv-android w Android Studio.

Łączenie projektu aplikacji na Androida z Firebase

  1. W konsoli Firebase w środkowej części strony „Opis” projektu kliknij ikonę Android lub Dodaj aplikację , aby uruchomić proces tworzenia aplikacji.
  2. W polu Nazwa pakietu Androida wpisz nazwę pakietu aplikacji: com.google.firebase.example.fpnv.
  3. Kliknij Zarejestruj aplikację.
  4. Wykonaj instrukcje, aby pobrać plik google-services.json, i przenieś go do katalogu app/ pobranego kodu.
  5. Kliknij Dalej.

Włączanie Firebase AI Logic

W tym ćwiczeniu do obsługi agenta głosowego AI używamy Firebase AI Logic. Aby włączyć Firebase AI Logic w projekcie w Firebase:

  1. W konsoli Firebase otwórz Usługi AI > AI Logic.
  2. Kliknij Rozpocznij.
  3. Aby korzystać z Gemini Developer API, kliknij Rozpocznij korzystanie z tego interfejsu API.
  4. Kliknij Włącz interfejs API i potwierdź.

3. Konfigurowanie weryfikacji numeru telefonu w Firebase w trybie testowym

Tryb testowy umożliwia weryfikację „fałszywego” numeru telefonu za pomocą tokena testowego na potrzeby programowania.

Dołączanie do programu publicznych testów beta usług systemowych Google

Aby korzystać z trybu testowego, zarejestruj urządzenie deweloperskie w kanale beta usług systemowych Google:

  1. Otwórz stronę Testowanie aplikacji na Androida – usługi systemowe Google.
  2. Kliknij Zostań testerem.

Jesteś teraz betatesterem usług systemowych Google.

Dodawanie zależności Firebase PNV

W bazie kodu projektu na Androida zależności bibliotek Firebase PNV i Firebase AI Logic są już zdefiniowane w pliku /gradle/versions.toml:

[versions]
# ... other dependencies
firebaseBom = "34.13.0"

[libraries]
# ... other libraries
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-ai-logic = { module = "com.google.firebase:firebase-ai" }
firebase-pnv = { module = "com.google.firebase:firebase-pnv" }

W pliku Gradle modułu (na poziomie aplikacji) (zwykle /app/build.gradle.kts) zadeklaruj zależność biblioteki Firebase PNV:

dependencies {
  // ... other dependencies
  implementation(platform(libs.firebase.bom))
  implementation(libs.firebase.ai.logic)

  // Add this line
  implementation(libs.firebase.pnv)

  // ...
}

Generowanie tokena testowego

  1. W konsoli Firebase otwórz Bezpieczeństwo > Weryfikacja telefoniczna.
  2. Kliknij kartę Testowanie.
  3. Wybierz kod kraju dla testowego numeru telefonu i kliknij Wygeneruj token.
  4. Skopiuj wygenerowany ciąg tokena.

Włączanie sesji testowej w kodzie

  1. Wróć do projektu aplikacji na Androida, otwórz plik ChatViewModel.kt i znajdź funkcję verifyPhoneNumber().
  2. Zainicjuj klienta FirebasePhoneNumberVerification i włącz sesję testową, wklejając token skopiowany z konsoli Firebase:
    suspend fun verifyPhoneNumber(): String {
        // Initialize Firebase Phone Number Verification
        val fpnv = FirebasePhoneNumberVerification.getInstance()
    
        // Enable Test session
        fpnv.enableTestSession("PASTE_THE_TOKEN_YOU_COPIED_IN_PREV_STEP")
    
        // Trigger the Firebase PNV pop up
        val response = fpnv.getVerifiedPhoneNumber(context!!).await()
        val phoneNumber = response.getPhoneNumber()
    
        return phoneNumber
    }
    

4. Uruchamianie aplikacji

Po wdrożeniu weryfikacji numeru telefonu w Firebase możesz uruchomić aplikację.

  1. W Android Studio kliknij Uruchom, aby uruchomić aplikację w emulatorze Androida lub na urządzeniu fizycznym.
  2. Po uruchomieniu aplikacji powinien pojawić się ekran podobny do tego:
    Uruchomiona aplikacja Firebase PNV
  3. Kliknij Rozpocznij połączenie i przedstaw się.
    Uruchomiona aplikacja Firebase PNV
  4. Agent głosowy AI powinien poprosić Cię o podanie szczegółów rezerwacji. Gdy podasz szczegóły, powinien poprosić Cię o sprawdzenie ekranu w celu potwierdzenia numeru telefonu:
    Uruchomiona aplikacja Firebase PNV
  5. Gdy to zrobisz, zobaczysz ekran z informacją o zakończeniu weryfikacji:
    Uruchomiona aplikacja Firebase PNV
  6. Aby zakończyć połączenie, kliknij Zakończ sesję.

5. (Opcjonalnie) Przechodzenie na tryb produkcyjny

Uaktualnianie abonamentu Firebase

Aby korzystać z weryfikacji numeru telefonu w Firebase w trybie produkcyjnym, projekt w Firebase musi być objęty abonamentem z płatnością według wykorzystania (Blaze), co oznacza, że jest połączony z kontem rozliczeniowym Cloud.

Aby przenieść projekt na abonament Blaze, wykonaj te czynności:

  1. W konsoli Firebase wybierz opcję uaktualnienia abonamentu.
  2. Wybierz abonament Blaze. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby połączyć konto rozliczeniowe Cloud z projektem.
    • Jeśli w ramach tego ćwiczenia odebrano środki w Google Cloud, konto rozliczeniowe prawdopodobnie będzie się nazywać Google Cloud Platform Trial Billing Account lub My Billing Account.
    • Jeśli w ramach tego uaktualnienia musisz utworzyć konto rozliczeniowe Cloud, może być konieczne powrócenie do procesu uaktualniania w konsoli Firebase, aby dokończyć uaktualnienie.

Włączanie trybu produkcyjnego weryfikacji numeru telefonu w Firebase

  1. Dodaj odcisk cyfrowy SHA-256 aplikacji:
    1. W konsoli Firebase otwórz stronę Ustawienia > Ogólne.
    2. Przewiń w dół do karty Twoje aplikacje i znajdź swoją aplikację na Androida.
    3. W polu Odciski cyfrowe certyfikatu SHA dodaj odcisk cyfrowy SHA-256. Więcej informacji o tym, jak uzyskać odcisk cyfrowy SHA-256 aplikacji, znajdziesz w artykule Uwierzytelnianie klienta.
  2. Wróć do Bezpieczeństwo > Weryfikacja telefoniczna.
  3. Kliknij Skonfiguruj wersję produkcyjną. Zobaczysz listę aplikacji w projekcie, które zostaną włączone w wersji produkcyjnej, i będziesz mieć możliwość dodania kolejnych aplikacji.
  4. Prześlij aplikację do weryfikacji marki OAuth i sprawdzenia polityki prywatności. Google Cloud sprawdzi, czy wyraźnie i dokładnie identyfikujesz swoją aplikację i jej politykę prywatności.
    Aby rozpocząć sprawdzanie, kliknij Kontynuuj w Google Cloud. Ten proces może czasami potrwać 24 godziny lub dłużej.
  5. Podczas oczekiwania na weryfikację marki zapoznaj się z warunkami korzystania z usługi Firebase PNV, do których linki znajdziesz w konsoli.
  6. Gdy aplikacja przejdzie weryfikację marki, zaznacz pole, aby potwierdzić, że akceptujesz warunki korzystania z usługi, a następnie kliknij Włącz.

Weryfikacja numeru telefonu w Firebase jest teraz aktywna w trybie produkcyjnym.

Usuwanie kodu testowego

W projekcie aplikacji na Androida usuń wiersz fpnv.enableTestSession(...).

Migrowanie Firebase AI Logic do Vertex AI

Jeśli na koncie rozliczeniowym używasz środków, nie będziesz ich mieć do dyspozycji w Gemini Developer API. Możesz ich jednak używać w Gemini API w Vertex AI.

  1. W konsoli Firebase otwórz Usługi AI > AI Logic.
  2. Kliknij Ustawienia.
  3. W sekcji Gemini API w Vertex AI kliknij Włącz.
  4. W projekcie aplikacji na Androida zmień inicjację Firebase AI Logic, aby używać backendu Vertex AI zamiast AI od Google:
    val model = Firebase.ai(
        backend = GenerativeBackend.vertexAI(location = "us-central1")
    ).liveModel(
        modelName = "gemini-live-2.5-flash-native-audio",
        // ... other configuration
    )
    

6. Gratulacje!

Udało Ci się zintegrować weryfikację numeru telefonu w Firebase z aplikacją na Androida.

Omówione zagadnienia

  • Konfigurowanie projektu na potrzeby weryfikacji numeru telefonu w Firebase.
  • Używanie trybu testowego do tworzenia prototypów.
  • Implementowanie interfejsu API z jednym wywołaniem weryfikacji numeru telefonu w Firebase.
  • Przechodzenie na tryb produkcyjny.

Dalsze kroki