Migra all'utilizzo delle API delle estensioni Kotlin (KTX) nei moduli principali

Firebase sta aumentando il suo impegno nei confronti di Kotlin e stiamo lavorando per modernizzare il nostro ecosistema Android per 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:

Cosa sta cambiando?

Le API delle 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 gli sviluppatori Kotlin ora possono dipendere dai moduli principali anziché dai moduli KTX (quando si utilizza Firebase BoM v32.4.0+ o le versioni del modulo principale elencate in BoM v32.4.0+).

Nell'ambito di questo cambiamento, le API delle estensioni Kotlin (KTX) in ogni modulo KTX sono ora deprecate. A partire dall'aprile 2024 non pubblicheremo più i moduli KTX e rimuoveremo anche le librerie KTX dal BoM Firebase Android.

Perché stiamo apportando questo cambiamento?

Firebase è impegnata in un ecosistema Kotlin per gli sviluppatori Android. Questa modernizzazione del packaging 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.

  • Supporto Kotlin migliorato: tutti i nostri SDK Firebase per Android forniranno ora un supporto migliore per Kotlin. Includeremo tutte le nuove funzionalità compatibili con Kotlin direttamente nei nostri moduli principali.

Date importanti per questo cambiamento

Scopri le tappe fondamentali di questo cambiamento.

Nell'ottobre 2023

Le API delle estensioni Kotlin (KTX) sono state aggiunte ai rispettivi moduli principali e le API delle estensioni Kotlin (KTX) in ogni modulo KTX sono state deprecate. Consulta le note di rilascio che annunciano questa modifica.

Ora puoi utilizzare le API KTX direttamente dai moduli principali quando utilizzi Firebase BoM v32.4.0+ o le versioni del modulo principale elencate in BoM v32.4.0+.

Durante questa fase obsoleta , le API obsolete nei moduli KTX continueranno a funzionare e ad essere mantenute.

Già nell'aprile 2024

Smetteremo di rilasciare nuove versioni dei moduli KTX e rimuoveremo i moduli KTX dalla distinta base Firebase.

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

Come migrare per utilizzare le API KTX dai moduli principali

Se attualmente utilizzi le API delle estensioni Kotlin (KTX), apporta i seguenti aggiornamenti nella tua app per iniziare a utilizzare le API dai moduli principali anziché dai moduli KTX.

  1. Rivedi le tue dipendenze Gradle per fare affidamento sul modulo principale anziché sul modulo KTX. Ad esempio, se utilizzi la distinta base Android Firebase (consigliata) :

    PRIMA

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


  2. Aggiorna il tuo codice per sostituire tutte le occorrenze delle API KTX con le API trasferite nel modulo principale nel 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