Pierwsze kroki z weryfikacją numeru telefonu w Firebase na Androidzie

Na tej stronie dowiesz się, jak rozpocząć korzystanie 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 ścieżek użytkownika w Firebase PNV. Na potrzeby testowania wygenerujesz token tylko do testów, który będzie wskazywać fałszywy numer telefonu. Za pomocą tego tokena testowego, możesz zacząć dodawać Firebase PNV do swojej aplikacji bez konta rozliczeniowego ani urządzenia z prawdziwą kartą SIM.

Gdy będziesz zadowolony z obsługi Firebase PNV w swojej aplikacji, możesz wykonać dodatkowe czynności, aby przygotować aplikację do wdrożenia.

Zanim zaczniesz

1. Dodaj bibliotekę Firebase PNV do swojej aplikacji

W pliku Gradle na poziomie modułu (aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle), dodaj zależność od biblioteki Firebase Phone Number Verification na Androida. Do kontrolowania wersji biblioteki zalecamy używanie Firebase Android BoM.

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

    // 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 korzystamy z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

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

Jeśli nie chcesz używać Firebase BoM, musisz określić wersję każdej biblioteki Firebase w wierszu zależności.

Pamiętaj, że jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia 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:16.1.0")
}

2. Zainicjuj bibliotekę Firebase PNV w trybie testowym

  1. W konsoli Firebase otwórz kartę Zabezpieczenia > Weryfikacja numeru telefonu > Testowanie.

  2. Kliknij Generate token (Wygeneruj token).

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

    Kotlin

    Zaimportuj bibliotekę:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    Utwórz nową instancję klasy FirebasePhoneNumberVerification i używaj jej do wszystkich wywołań Firebase PNV. Metoda getInstance() nie zwraca obiektu singleton, więc po utworzeniu musisz go zachować.

    val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)
    

    Włącz sesję testową za pomocą tokena wygenerowanego w poprzednim kroku:

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

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

Tokeny testowe mają okres ważności wynoszący 7 dni. Po tym czasie musisz wygenerować nowy token, aby włączyć sesje testowe. Tokeny testowe działają na urządzeniach fizycznych i emulatorach, dzięki czemu idealnie nadają się do prototypowania obsługi użytkownika w aplikacji lub testowania w CI/CD.

3. Zalecane: sprawdź, czy obsługa Firebase PNV jest dostępna

Aby pomóc Ci określić, kiedy wyświetlać interfejs wprowadzania numeru lub interfejs wyjaśniający, po uruchomieniu aplikacji zalecamy sprawdzenie, czy urządzenie i karta SIM obsługują Firebase PNV. Jest to wstępne sprawdzenie, które nie wymaga zgody użytkownika. Wynik tego testu możesz wykorzystać do podjęcia decyzji, czy rozpocząć proces Firebase PNV czy użyć alternatywnej metody weryfikacji numeru telefonu, np. SMS-a.

Aby sprawdzić zgodność urządzenia, wywołaj metodę getVerificationSupportInfo(). Gdy sesja testowa jest aktywna, ta metoda zwróci listę wszystkich tokenów testowych aktywnych w Twoim projekcie. Później, gdy przygotujesz aplikację do wdrożenia, ta metoda zwróci 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. Rozpocznij proces weryfikacji

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

Kotlin

fpnv.getVerifiedPhoneNumber()
  .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:

  • uzyskanie zgody użytkownika na udostępnienie numeru telefonu za pomocą Menedżera danych logowania na Androida;
  • wysłanie żądania do backendu Firebase PNV;
  • zwrócenie tokena zawierającego zweryfikowany numer telefonu urządzenia (w aplikacji produkcyjnej w tym momencie następuje rozliczenie).

Dalsze kroki

  • Na tej stronie opisujemy, jak zintegrować się z Firebase PNV za pomocą ujednoliconego interfejsu API z jednym wywołaniem. Wywołanie pojedynczej metody obsługuje cały proces Firebase PNV użytkownika, od uzyskania zgody użytkownika po wykonanie niezbędnych wywołań sieciowych do backendu Firebase PNV. Dzięki tej metodzie ograniczasz liczbę kroków integracji do jednego wywołania metody.

    Ten interfejs API jest zalecany większości deweloperów. Jeśli jednak masz określone wymagania, których biblioteka nie spełnia, informacje o implementowaniu niestandardowego procesu znajdziesz na stronie Dostosowywanie procesuFirebase Phone Number Verification w celu uzyskania informacji o implementacji niestandardowego procesu.

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

  • Gdy zaimplementujesz i przetestujesz proces Firebase PNV oraz integrację z backendem , możesz wdrożyć aplikację, aby zacząć otrzymywać prawdziwe zweryfikowane numery telefonów. Zobacz Uaktualnianie do trybu produkcyjnego.