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 che sei soddisfatto dell'esperienza utente Firebase PNV nella tua app, puoi seguire alcuni passaggi aggiuntivi per mettere in produzione l'app.

Prima di iniziare

1. Aggiungi la libreria Firebase PNV alla tua app

Nel file Gradle del modulo (a livello di app) (in genere <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 la 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")
}

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

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

Se scegli di non utilizzare la Firebase BoM, devi specificare la versione di ogni libreria Firebase nella 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, in modo da garantire che tutte le versioni siano compatibili.

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 libr0/} libreria in modalità di testFirebase PNV

  1. Nella scheda Test della Firebase console Verifica del numero di telefono sezione, fai clic sul pulsante Genera token.

  2. 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. Trascorso 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: controlla il supporto per Firebase PNV

Per aiutarti a determinare quando mostrare l'interfaccia utente per l'inserimento del numero o l'interfaccia utente esplicativa, al momento dell'avvio dell'app ti consigliamo di 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 tramite SMS.

Per verificare la compatibilità del dispositivo, chiama il metodo getVerificationSupportInfo(). Mentre è attiva una sessione di test, questo metodo restituirà un elenco di tutti i token di test attivi nel tuo progetto. In un secondo momento, dopo aver messo in produzione l'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. Avvia 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, è in questo momento che 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 Firebase Phone Number Verification flusso 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 in modo da poterne verificare l'integrità quando lo utilizzi. Consulta Verificare i token.Firebase PNV

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