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:
- O que vai mudar
- Motivo da mudança
- Datas importantes para essa mudança
- Como migrar para usar as APIs KTX do módulo principal
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.
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") }
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