Iniziare a utilizzare la verifica del numero di telefono Firebase su Android

Questa pagina descrive come iniziare a utilizzare Firebase Phone Number Verification in un'app per Android. Per una descrizione generale di questa funzionalità, consulta la panoramica.

Seguendo i passaggi descritti in questa pagina, puoi iniziare rapidamente a implementare i flussi utente per Firebase PNV. A scopo di test, genererai un token solo di test che si risolve in un numero di telefono fittizio. Utilizzando questo token di test, puoi iniziare ad aggiungere Firebase PNV alla tua app senza bisogno di un account di fatturazione o di un dispositivo con una SIM reale.

Una volta soddisfatto dell'esperienza utente Firebase PNV nella tua app, puoi seguire alcuni passaggi aggiuntivi per preparare l'app per la produzione.

Prima di iniziare

1. Aggiungere la libreria Firebase PNV all'app

Nel file Gradle (a livello di app) del modulo (solitamente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle), aggiungi la dipendenza per la libreria Firebase Phone Number Verification per Android. Ti consigliamo di utilizzare Firebase Android BoM per controllare il controllo delle versioni della libreria.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:34.12.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")
}

Utilizzando Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.

(Alternativa)  Aggiungi le dipendenze della libreria Firebase senza utilizzare BoM

Se scegli di non utilizzare Firebase BoM, devi specificare la versione di ogni libreria Firebase nella relativa riga di dipendenza.

Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la BoM per gestire le versioni delle librerie, il che garantisce la compatibilità di tutte le versioni.

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.0.0")
}

2. Inizializza la libreria Firebase PNV in modalità test

  1. Nella console Firebase, vai alla scheda Sicurezza > Verifica telefonica > Test.

  2. Fai clic su Genera token.

  3. Nella tua app, inizializza il client Firebase PNV per utilizzare una sessione di test:

    Kotlin

    Importa la libreria:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    Crea una nuova istanza della classe FirebasePhoneNumberVerification e utilizza questa istanza per tutte le chiamate Firebase PNV. Il metodo getInstance() non restituisce un oggetto singleton, quindi devi conservarlo dopo averlo creato.

    val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)
    

    Attiva una sessione di test utilizzando il token generato nel passaggio precedente:

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    Devi chiamare questo metodo una sola volta su un'istanza di FirebasePhoneNumberVerification; le chiamate successive genereranno un errore.

I token di test hanno un TTL di 7 giorni; dopo questo periodo dovrai generare un nuovo token per attivare le sessioni di test. I token di test funzionano su dispositivi fisici ed emulatori, il che li rende ideali per la prototipazione dell'esperienza utente nella tua app o per i test in CI/CD.

3. Consigliato: verifica il supporto di Firebase PNV

Per aiutarti a determinare quando mostrare l'interfaccia utente per l'inserimento del numero o l'interfaccia utente esplicativa, all'avvio dell'app è consigliabile verificare se il dispositivo e la relativa scheda SIM supportano Firebase PNV. Si tratta di un controllo preliminare che non richiede il consenso dell'utente. Puoi utilizzare il risultato di questo test per decidere se avviare il flusso Firebase PNV o utilizzare un metodo alternativo di verifica del numero di telefono, ad esempio gli SMS.

Per verificare la compatibilità del dispositivo, chiama il metodo getVerificationSupportInfo(). Mentre una sessione di test è attiva, questo metodo restituisce un elenco di tutti i token di test attivi nel tuo progetto. In un secondo momento, dopo aver messo in produzione la tua app, questo metodo restituirà un risultato per ogni SIM nel dispositivo.

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. Avviare il flusso di verifica

Per avviare il flusso Firebase PNV, chiama il metodo 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.
  }

Il metodo getVerifiedPhoneNumber() esegue l'intero flusso di verifica del numero di telefono, tra cui:

  • Utilizzo di Android Gestore delle credenziali per ottenere il consenso dell'utente a condividere il proprio numero di telefono.
  • Invio della richiesta al backend Firebase PNV.
  • Restituzione di un token contenente il numero di telefono verificato per il dispositivo (in un'app di produzione, questo è il momento in cui viene eseguita la fatturazione).

Passaggi successivi

  • Questa pagina descrive in dettaglio come eseguire l'integrazione con Firebase PNV utilizzando l'API unificata a chiamata singola. La chiamata di un singolo metodo gestisce l'intero flusso utente Firebase PNV, dall'ottenimento del consenso dell'utente all'esecuzione delle chiamate di rete necessarie al backend Firebase PNV. Utilizzando questo metodo, riduci i passaggi di integrazione a una singola chiamata al metodo.

    Questa API è consigliata per la maggior parte degli sviluppatori. Tuttavia, se hai requisiti specifici non soddisfatti dalla libreria, consulta la pagina Personalizzare il flusso Firebase Phone Number Verification per informazioni sull'implementazione di un flusso personalizzato.

  • Se utilizzi il numero di telefono verificato al di fuori del client dell'app, devi passare il token anziché il numero di telefono stesso per poter verificarne l'integrità quando lo utilizzi. Vedi Verifica dei token Firebase PNV.

  • Dopo aver implementato e testato il flusso Firebase PNV e l'integrazione del backend dell'app, puoi metterla in produzione per iniziare a ricevere numeri di telefono verificati reali. Consulta la sezione Eseguire l'upgrade alla modalità produzione.