Migrar para o uso das APIs de extensões Kotlin (KTX) nos módulos principais

O Firebase está aumentando o compromisso com o Kotlin, e estamos trabalhando para modernizar nosso ecossistema Android e torná-lo mais acessível e fácil de usar com o Firebase.

Para conseguir essa modernização, estamos fazendo algumas alterações nos nossos SDKs do Firebase para Android. Nesta página, descrevemos informações importantes sobre essa mudança, incluindo:


Saiba como migrar seu app

O que muda?

As APIs de extensões Kotlin (KTX) foram adicionadas aos respectivos módulos principais. Por exemplo, todas as APIs de firebase-perf-ktx foram adicionadas a firebase-perf no pacote com.google.firebase.perf.

Essa mudança significa que os desenvolvedores Kotlin agora podem depender dos módulos principais em vez dos módulos KTX (ao usar a Firebase BoM v32.5.0+ ou as principais versões do módulo principal listadas em BoM v32.5.0 ou mais recente).

Como parte dessa mudança, o uso das APIs de extensões Kotlin (KTX) em todos os módulos KTX foi descontinuado. A partir de setembro de 2024, não vamos mais lançar módulos KTX, e também vamos remover as bibliotecas KTX do Firebase Android BoM neste período.

.

Por que fizemos essa mudança?

O Firebase está comprometido com um ecossistema que prioriza o Kotlin para desenvolvedores Android. Essa modernização de empacotamento oferece as seguintes vantagens:

  • Gerenciamento simplificado de dependências: agora você só precisa depender de um único módulo, eliminando a necessidade de alternar entre o módulo principal e as extensões Kotlin ou depender de ambos.

  • Suporte aprimorado ao Kotlin: todos os nossos SDKs do Firebase para Android agora oferecem melhor compatibilidade com o Kotlin. Vamos incluir todos os novos recursos compatíveis com Kotlin diretamente nos nossos módulos principais.

Datas importantes para essa mudança

Em outubro de 2023

As APIs de extensões Kotlin (KTX) foram adicionadas aos respectivos módulos principais, o que significa que agora é possível usar as APIs KTX diretamente dos módulos principais ao usar Firebase BoM v32.5.0+ ou as versões do módulo principal listadas no BoM v32.5.0+.

Paralelamente, as APIs de extensão Kotlin (KTX) nos módulos KTX foram descontinuadas. Consulte as notas da versão que descrevem essa mudança. Durante a fase descontinuada, as APIs descontinuadas nos módulos KTX vão continuar funcionando e mantidas.

A partir de setembro de 2024

Não lançaremos novas versões dos módulos KTX e removeremos os módulos KTX do Firebase BoM.

Qualquer versão anterior de um módulo KTX ou do BoM continuará funcionando, mas entrará em fim da manutenção. Isso significa que deixaremos de adicionar correções de bugs, mudanças compatíveis com versões anteriores e novos recursos aos módulos KTX. Em vez disso, todo o desenvolvimento futuro para o Firebase no Android será feito nos módulos principais (para Java e Kotlin).

Como migrar para usar as APIs KTX dos módulos principais

Se você usa APIs de extensões Kotlin (KTX), faça as atualizações abaixo no app para começar a usar as APIs dos módulos principais em vez dos módulos KTX.

  1. Revise as dependências do Gradle para depender do módulo principal em vez do módulo KTX. Por exemplo, se você usa o Firebase Android BoM (recomendado):

    BEFORE

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

    AFTER

    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.6.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. Atualize seu código para substituir todas as ocorrências das APIs KTX pelas APIs realocadas no módulo principal no pacote com.google.firebase.

    BEFORE

    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
    

    AFTER

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