Esegui la migrazione all'utilizzo delle API di estensioni Kotlin (KTX) nei moduli principali

Firebase sta aumentando il proprio impegno per Kotlin e ci stiamo adoperando per modernizzare il nostro ecosistema Android al fine di rendere Kotlin più accessibile e facile da usare con Firebase.

Per realizzare questa modernizzazione, stiamo apportando alcune modifiche ai nostri SDK Firebase per Android. Questa pagina descrive informazioni importanti su questa modifica, tra cui:


Scopri come eseguire la migrazione dell'app

Che cosa cambia?

Le API di estensioni Kotlin (KTX) sono state aggiunte ai rispettivi moduli principali. Ad esempio, tutte le API di firebase-perf-ktx sono state aggiunte a firebase-perf nel pacchetto com.google.firebase.perf.

Questa modifica significa che ora gli sviluppatori Kotlin possono fare affidamento sui moduli principali anziché sui moduli KTX (se utilizzano Firebase BoM v32.5.0 o versioni successive o le versioni dei moduli principali elencate in BoM v32.5.0 o versioni successive).

Nell'ambito di questa modifica, le API Kotlin Extensions (KTX) in ogni modulo KTX sono ora ritirate. A partire da settembre 2024, non pubblicheremo più moduli KTX e rimuoveremo anche le librerie KTX da Firebase Android BoM.

Perché introduciamo questa modifica?

Firebase si impegna a creare un ecosistema incentrato su Kotlin per gli sviluppatori Android. Questa modernizzazione del pacchettizzazione offre i seguenti vantaggi:

  • Gestione semplificata delle dipendenze: ora devi dipendere solo da un singolo modulo, eliminando la necessità di passare dal modulo principale alle estensioni Kotlin o di dipendere da entrambi.

  • Miglioramento del supporto di Kotlin: tutti i nostri SDK Firebase per Android ora supportano meglio Kotlin. Includeremo tutte le nuove funzionalità compatibili con Kotlin direttamente nei nostri moduli principali.

Date importanti per questa modifica

A ottobre 2023

Le API di estensioni Kotlin (KTX) sono state aggiunte ai rispettivi moduli principali, il che significa che ora puoi utilizzare le API KTX direttamente dai moduli principali quando utilizzi Firebase BoM v32.5.0 o versioni successive o le versioni dei moduli principali elencate in BoM v32.5.0 o versioni successive.

Parallelamente, le API di estensione Kotlin (KTX) nei moduli KTX sono state ritirate (consulta le note di rilascio che descrivono questa modifica). Durante la fase di ritiro, le API ritirate nei moduli KTX continueranno a funzionare e a essere mantenute.

Già a partire da settembre 2024

Stiamo per interrompere il rilascio di nuove versioni dei moduli KTX e rimuoverli da Firebase BoM.

Qualsiasi versione di un modulo KTX o del BoM rilasciata in precedenza continuerà a funzionare, ma entrerà in fine manutenzione. Ciò significa che non aggiungeremo più correzioni di bug, modifiche compatibili con le versioni precedenti e nuove funzionalità ai moduli KTX. Invece, tutto lo sviluppo futuro di Firebase su Android verrà eseguito nei moduli principali (sia per Java che per Kotlin).

Come eseguire la migrazione per utilizzare le API KTX dai moduli principali

Se utilizzi le API di estensioni Kotlin (KTX), apporta i seguenti aggiornamenti alla tua app per iniziare a utilizzare le API dei moduli principali anziché dei moduli KTX.

  1. Rivedi le dipendenze Gradle in modo che si basino sul modulo principale anziché sul modulo KTX. Ad esempio, se utilizzi Firebase Android BoM (opzione consigliata):

    PRIMA

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

    DOPO

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

    PRIMA

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

    DOPO

    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. Aggiorna il codice per sostituire tutte le occorrenze delle API KTX con le API spostate nel modulo principale del pacchetto com.google.firebase.

    PRIMA

    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

    DOPO

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