Premiers pas avec la validation du numéro de téléphone Firebase sur Android

Cette page explique comment commencer à utiliser Firebase Phone Number Verification dans une application Android. Pour obtenir une description générale de cette fonctionnalité, consultez la présentation.

En suivant les étapes décrites sur cette page, vous pouvez rapidement commencer à implémenter les parcours utilisateur pour Firebase PNV. À des fins de test, vous allez générer un jeton réservé aux tests qui correspond à un faux numéro de téléphone. Grâce à ce jeton de test, vous pouvez commencer à ajouter Firebase PNV à votre application sans avoir besoin d'un compte de facturation ni d'un appareil avec une véritable carte SIM.

Une fois que vous êtes satisfait de l'expérience utilisateur Firebase PNV dans votre application, vous pouvez suivre quelques étapes supplémentaires pour la mettre en production.

Avant de commencer

1. Ajouter la bibliothèque Firebase PNV à votre application

Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle), ajoutez la dépendance pour la bibliothèque Firebase Phone Number Verification pour Android. Nous vous recommandons d'utiliser Firebase Android BoM pour contrôler le versionnage de la bibliothèque.

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

En utilisant la Firebase Android BoM, votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.

(Alternative)  Ajoutez les dépendances de la bibliothèque Firebase sans utiliser BoM.

Si vous choisissez de ne pas utiliser Firebase BoM, vous devez spécifier la version de chaque bibliothèque Firebase sur sa ligne de dépendance.

Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser BoM pour gérer les versions des bibliothèques, ce qui garantit que toutes les versions sont compatibles.

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. Initialiser la bibliothèque Firebase PNV en mode test

  1. Dans l'onglet Test de la section Validation du numéro de téléphone de la console Firebase, cliquez sur le bouton Générer un jeton.

  2. Dans votre application, initialisez le client Firebase PNV pour utiliser une session de test :

    Kotlin

    Importez la bibliothèque :

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    Créez une instance de la classe FirebasePhoneNumberVerification et utilisez-la pour tous les appels Firebase PNV. La méthode getInstance() ne renvoie pas d'objet singleton. Vous devez donc le conserver après l'avoir créé.

    val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)
    

    Activez une session de test à l'aide du jeton que vous avez généré à l'étape précédente :

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    Vous ne devez appeler cette méthode qu'une seule fois sur une instance de FirebasePhoneNumberVerification. Les appels suivants généreront une erreur.

Les jetons de test ont une durée de vie de sept jours. Passé ce délai, vous devrez générer un nouveau jeton pour activer les sessions de test. Les jetons de test fonctionnent sur les appareils physiques et les émulateurs. Ils sont donc idéaux pour prototyper l'UX de votre application ou effectuer des tests dans CI/CD.

3. Recommandation : Vérifiez si Firebase PNV est compatible.

Pour vous aider à déterminer quand afficher l'interface utilisateur de saisie de numéro ou l'interface utilisateur d'explication, il est recommandé de vérifier au lancement de l'application si l'appareil et sa carte SIM sont compatibles avec Firebase PNV. Il s'agit d'une vérification préalable qui ne nécessite pas le consentement de l'utilisateur. Vous pouvez utiliser le résultat de ce test pour décider de lancer le flux Firebase PNV ou d'utiliser une autre méthode de validation du numéro de téléphone, comme un SMS.

Pour vérifier la compatibilité de l'appareil, appelez la méthode getVerificationSupportInfo(). Tant qu'une session de test est active, cette méthode renvoie la liste de tous les jetons de test actifs dans votre projet. Plus tard, une fois que vous aurez mis votre application en production, cette méthode renverra un résultat pour chaque carte SIM de l'appareil.

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. Lancer le processus de validation

Pour lancer le flux Firebase PNV, appelez la méthode 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.
  }

La méthode getVerifiedPhoneNumber() exécute l'intégralité du flux de validation du numéro de téléphone, y compris :

  • Utilisation du Credential Manager Android pour obtenir le consentement de l'utilisateur à partager son numéro de téléphone.
  • Envoyez la requête au backend Firebase PNV.
  • Renvoyer un jeton contenant le numéro de téléphone validé pour l'appareil (dans une application de production, c'est à ce moment-là que la facturation a lieu).

Étapes suivantes

  • Cette page explique comment intégrer Firebase PNV à l'aide de l'API unifiée à appel unique. L'appel d'une seule méthode gère l'intégralité du flux utilisateur Firebase PNV, de l'obtention du consentement de l'utilisateur à l'exécution des appels réseau nécessaires au backend Firebase PNV. Cette méthode permet de réduire les étapes d'intégration à un seul appel de méthode.

    Cette API est recommandée pour la plupart des développeurs. Toutefois, si vous avez des exigences spécifiques auxquelles la bibliothèque ne répond pas, consultez la page Personnaliser le flux Firebase Phone Number Verification pour savoir comment implémenter un flux personnalisé.

  • Si vous utilisez le numéro de téléphone validé en dehors du client de l'application, vous devez transmettre le jeton au lieu du numéro de téléphone lui-même afin de pouvoir vérifier son intégrité lorsque vous l'utilisez. Consultez Valider les jetons Firebase PNV.

  • Une fois que vous avez implémenté et testé le flux Firebase PNV de votre application et l'intégration du backend, vous pouvez mettre votre application en production pour commencer à obtenir de vrais numéros de téléphone validés. Consultez Passer au mode production.