Pierwsze kroki z weryfikacją numeru telefonu w Firebase na Androidzie

Na tej stronie dowiesz się, jak zacząć korzystać z Firebase Phone Number Verification w aplikacji na Androida. Ogólny opis tej funkcji znajdziesz w omówieniu.

Wykonując czynności opisane na tej stronie, możesz szybko rozpocząć wdrażanie wzorców przeglądania w usłudze Firebase PNV. Do celów testowych wygenerujesz token tylko do testowania, który będzie odpowiadał fałszywemu numerowi telefonu. Za pomocą tego tokena testowego możesz zacząć dodawać Firebase PNV do aplikacji bez konieczności posiadania konta rozliczeniowego lub urządzenia z prawdziwą kartą SIM.

Gdy uznasz, że interfejs użytkownika Firebase PNV w aplikacji jest zadowalający, możesz wykonać kilka dodatkowych czynności, aby przygotować aplikację do środowiska produkcyjnego.

Zanim zaczniesz

1. Dodawanie biblioteki Firebase PNV do aplikacji

W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką Firebase Phone Number Verification na Androida. Zalecamy używanie Firebase Android BoM do kontrolowania obsługi wersji biblioteki.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.1"))

    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv")
}

Gdy korzystasz z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

(Alternatywa)  Dodaj zależności biblioteki Firebase bez używania BoM

Jeśli nie zdecydujesz się na użycie Firebase BoM, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

Jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewni zgodność wszystkich wersji.

dependencies {
    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv:17.0.0")
}

2. Zainicjuj bibliotekę Firebase PNV w trybie testowym

  1. W konsoli Firebase otwórz kartę Bezpieczeństwo > Weryfikacja telefoniczna > Testowanie.

  2. Kliknij Generate token (Wygeneruj token).

  3. W aplikacji zainicjuj klienta Firebase PNV, aby użyć sesji testowej:

    Kotlin

    Zaimportuj bibliotekę:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    Utwórz nową instancję klasy FirebasePhoneNumberVerification i używaj jej we wszystkich wywołaniach Firebase PNV.

    val fpnv = FirebasePhoneNumberVerification.getInstance()
    

    Włącz sesję testową, używając tokena wygenerowanego w poprzednim kroku:

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    Tę metodę należy wywołać tylko raz w instancji FirebasePhoneNumberVerification. Kolejne wywołania spowodują błąd.

Tokeny testowe mają 7-dniowy czas życia. Po tym okresie musisz wygenerować nowy token, aby umożliwić sesje testowe. Tokeny testowe działają na urządzeniach fizycznych i emulatorach, dzięki czemu idealnie nadają się do prototypowania UX w aplikacji lub testowania w CI/CD.

3. Zalecane: sprawdź, czy Firebase PNV jest obsługiwany

Aby określić, kiedy wyświetlać interfejs wprowadzania numeru lub interfejs z wyjaśnieniem, zalecamy sprawdzenie przy uruchamianiu aplikacji, czy urządzenie i jego karta SIM obsługują Firebase PNV. Jest to wstępna weryfikacja, która nie wymaga zgody użytkownika. Na podstawie wyniku tego testu możesz zdecydować, czy chcesz zainicjować proces Firebase PNV, czy użyć alternatywnej metody weryfikacji numeru telefonu, np. SMS-a.

Aby sprawdzić zgodność urządzenia, wywołaj metodę getVerificationSupportInfo(). Gdy masz aktywną sesję testową, ta metoda zwraca listę zawierającą pojedynczy wpis dotyczący aktywnego tokena testowego w projekcie. Później, gdy aplikacja zostanie wprowadzona do produkcji, ta metoda będzie zwracać wynik dla każdej karty SIM w urządzeniu.

Kotlin

// Check all SIMs for support.
fpnv.getVerificationSupportInfo()
.addOnSuccessListener { results ->
  if (results.any { it.isSupported() }) {
    // At least one SIM is supported; okay to call getVerifiedPhoneNumber
    // (see the next step).
  } else {
    // No SIMs are supported, so fall back to SMS verification.
  }
}
.addOnFailureListener { e ->
  // Handle error.
}

4. Rozpoczynanie procesu weryfikacji

Aby rozpocząć proces Firebase PNV, wywołaj metodę getVerifiedPhoneNumber():

Kotlin

fpnv.getVerifiedPhoneNumber(this@MainActivity)
.addOnSuccessListener { result ->
  // In test mode, this phone number will have a valid country code,
  // followed by all zeros.
  val phoneNumber = result.getPhoneNumber()
  val token = result.getToken()

  // Verification successful. Send token to your backend. (See Next Steps.)
}
.addOnFailureListener { e ->
  // Handle failures, such as the user declining consent or a network error.
}

Metoda getVerifiedPhoneNumber() przeprowadza cały proces weryfikacji numeru telefonu, w tym:

  • Używanie Menedżera danych logowania na Androidzie do uzyskiwania zgody użytkownika na udostępnianie jego numeru telefonu.
  • Wysyłam żądanie do backendu Firebase PNV.
  • Zwrócenie tokena zawierającego zweryfikowany numer telefonu urządzenia (w aplikacji produkcyjnej jest to moment, w którym następuje rozliczenie).

Dalsze kroki

  • Na tej stronie dowiesz się, jak przeprowadzić integrację z Firebase PNV za pomocą ujednoliconego interfejsu API z pojedynczym wywołaniem. Wywołanie jednej metody obsługuje cały wzorzec przeglądania użytkownika Firebase PNV, od uzyskania zgody użytkownika po wykonanie niezbędnych wywołań sieciowych do backendu Firebase PNV. Dzięki tej metodzie ograniczysz kroki integracji do jednego wywołania metody.

    Ten interfejs API jest zalecany dla większości deweloperów. Jeśli jednak masz określone wymagania, których biblioteka nie spełnia, zapoznaj się ze stroną Dostosowywanie procesu Firebase Phone Number Verification, aby dowiedzieć się, jak wdrożyć proces niestandardowy.

  • Jeśli używasz zweryfikowanego numeru telefonu poza klientem aplikacji, zamiast samego numeru telefonu przekazuj token, aby móc zweryfikować jego integralność podczas używania. Zobacz Weryfikowanie tokenów Firebase PNV.

  • Po wdrożeniu i przetestowaniu procesu Firebase PNV oraz integracji backendu aplikacji możesz wprowadzić ją do środowiska produkcyjnego, aby zacząć otrzymywać prawdziwe, zweryfikowane numery telefonów. Zobacz Przechodzenie na tryb produkcyjny.