Passer à l'utilisation des API des extensions Kotlin (KTX) dans les modules principaux

Firebase renforce son engagement auprès de Kotlin et s'efforce de moderniser son écosystème Android afin de rendre Kotlin plus accessible et plus facile à utiliser avec Firebase.

Pour y parvenir, nous apportons quelques modifications à nos SDK Firebase pour Android. Cette page décrit des informations importantes sur ce changement, y compris les suivantes:


Découvrez comment migrer votre application.

Ce qui change

Les API des extensions Kotlin (KTX) ont été ajoutées à leurs modules principaux respectifs. Par exemple, toutes les API de firebase-perf-ktx ont été ajoutées à firebase-perf sous le package com.google.firebase.perf.

Ce changement signifie que les développeurs Kotlin peuvent désormais dépendre des modules principaux au lieu des modules KTX (lorsque vous utilisez Firebase BoM v32.5.0 ou version ultérieure ou les versions de modules principaux listées dans BoM v32.5.0 ou version ultérieure).

En conséquence, les API des extensions Kotlin (KTX) de chaque module KTX sont désormais obsolètes. Dès septembre 2024, nous ne publierons plus de modules KTX. Nous supprimerons également les bibliothèques KTX de Firebase Android BoM à ce moment-là.

Pourquoi apportons-nous ce changement ?

Firebase s'engage à proposer un écosystème Kotlin-first pour les développeurs Android. Cette modernisation du packaging offre les avantages suivants:

  • Gestion simplifiée des dépendances:vous n'avez désormais plus besoin de dépendre que d'un seul module, ce qui vous évite d'avoir à basculer entre le module principal et les extensions Kotlin, ou de dépendre des deux.

  • Compatibilité améliorée avec Kotlin:tous nos SDK Firebase pour Android seront désormais mieux compatibles avec Kotlin. Nous inclurons toutes les nouvelles fonctionnalités compatibles avec Kotlin directement dans nos modules principaux.

Dates importantes pour ce changement

En octobre 2023

Les API Kotlin Extensions (KTX) ont été ajoutées à leurs modules principaux respectifs. Vous pouvez donc désormais utiliser les API KTX directement à partir des modules principaux lorsque vous utilisez Firebase BoM v32.5.0 ou version ultérieure ou les versions de modules principaux listées dans BoM v32.5.0 ou version ultérieure.

Parallèlement, les API d'extension Kotlin (KTX) dans les modules KTX ont été abandonnées (voir les notes de version décrivant cette modification). Au cours de la phase d'obsolescence, les API obsolètes des modules KTX continueront de fonctionner et seront gérées.

Dès septembre 2024

Nous allons cesser de publier de nouvelles versions des modules KTX et nous allons les supprimer de Firebase BoM.

Toute version précédente d'un module KTX ou de BoM continuera de fonctionner, mais elle sera mise hors service. Cela signifie que nous allons cesser d'ajouter des corrections de bugs, des modifications rétrocompatibles et de nouvelles fonctionnalités aux modules KTX. À la place, tous les futurs développements pour Firebase sur Android seront effectués dans les modules principaux (pour Java et Kotlin).

Migrer vers l'utilisation des API KTX à partir des modules principaux

Si vous utilisez des API Kotlin Extensions (KTX), apportez les modifications suivantes dans votre application pour commencer à utiliser les API à partir des modules principaux au lieu des modules KTX.

  1. Modifiez vos dépendances Gradle pour qu'elles reposent sur le module principal plutôt que sur le module KTX. Par exemple, si vous utilisez Firebase Android BoM (recommandé):

    AVANT

    dependencies {
      // ...
    
      // Import the Firebase BoM
      implementation(platform("com.google.firebase:firebase-bom:33.10.0"))
    
      // Using KTX libraries for Authentication and Cloud Firestore
      implementation("com.google.firebase:firebase-auth-ktx")
      implementation("com.google.firebase:firebase-firestore-ktx")
    }

    APRÈS

    dependencies {
      // ...
    
      // Import the Firebase BoM as usual
      // Make sure to use Firebase BoM v32.5.0 or higher
      implementation(platform("com.google.firebase:firebase-bom:33.10.0"))
    
      // No need to use the KTX libraries, everything is now in the main module
      implementation("com.google.firebase:firebase-auth")
      implementation("com.google.firebase:firebase-firestore")
    }

    AVANT

    dependencies {
      // ...
    
      // Using KTX libraries for Authentication and Cloud Firestore
      implementation("com.google.firebase:firebase-auth-ktx:23.2.0")
      implementation("com.google.firebase:firebase-firestore-ktx:25.1.2")
    }

    APRÈS

    dependencies {
      // ...
    
      // No need to use the KTX libraries, everything is now in the main module
      // Make sure to use a version listed in Firebase BoM v32.5.0 or higher
      implementation("com.google.firebase:firebase-auth:23.2.0")
      implementation("com.google.firebase:firebase-firestore:25.1.2")
    }


  2. Mettez à jour votre code pour remplacer toutes les occurrences des API KTX par les API relocalisées dans le module principal sous le package com.google.firebase.

    AVANT

    import com.google.firebase.auth.ktx.auth
    import com.google.firebase.firestore.ktx.firestore
    import com.google.firebase.firestore.ktx.toObject
    import com.google.firebase.ktx.Firebase

    APRÈS

    import com.google.firebase.auth.auth
    import com.google.firebase.firestore.firestore
    import com.google.firebase.firestore.toObject
    import com.google.firebase.Firebase