Firebase está aumentando su compromiso con Kotlin, y estamos trabajando para modernizar nuestro ecosistema de Android para que Kotlin sea más accesible y fácil de usar con Firebase.
Para lograr esta modernización, haremos algunos cambios en nuestros SDK de Firebase para Android. En esta página, se describe información importante sobre este cambio, incluida la siguiente:
- ¿Qué cambiará?
- Razón por la que realizamos este cambio
- Fechas importantes de este cambio
- Cómo realizar la migración para usar las APIs de KTX desde el módulo principal
Más información para migrar tu app
¿Qué cambiará?
Se agregaron las APIs de extensiones de Kotlin (KTX) a sus respectivos módulos principales. Por ejemplo, todas las APIs de firebase-perf-ktx
se agregaron a firebase-perf
en el paquete com.google.firebase.perf
.
Este cambio significa que los desarrolladores de Kotlin ahora pueden depender de los módulos principales en lugar de los módulos de KTX (cuando usen la Firebase BoM v32.5.0 o una versión posterior, o las versiones del módulo principal que se indican en la BoM v32.5.0 o una versión posterior).
Como parte de este cambio, las APIs de extensiones de Kotlin (KTX) en cada módulo de KTX ahora están obsoletas. A partir de septiembre de 2024, ya no lanzaremos módulos de KTX y, en esa fecha, también quitaremos las bibliotecas de KTX de la Firebase Android BoM.
¿Por qué haremos este cambio?
Firebase está comprometido con un ecosistema centrado en Kotlin para los desarrolladores de Android. Esta modernización del empaquetado proporciona las siguientes ventajas:
Administración de dependencias simplificada: Ahora solo necesitas depender de un solo módulo, lo que elimina la necesidad de cambiar entre el módulo principal y las extensiones de Kotlin, o de depender de ambos.
Compatibilidad mejorada con Kotlin: Ahora todos nuestros SDK de Firebase para Android brindarán una mejor compatibilidad con Kotlin. Incluiremos todas las funciones nuevas compatibles con Kotlin directamente en nuestros módulos principales.
Fechas importantes de este cambio
En octubre de 2023
Las APIs de extensiones de Kotlin (KTX) se agregaron a sus respectivos módulos principales, lo que significa que ahora puedes usar las APIs de KTX directamente desde los módulos principales cuando uses la Firebase BoM v32.5.0 o una versión posterior, o las versiones del módulo principal que se indican en la BoM v32.5.0 y versiones posteriores.
Al mismo tiempo, las APIs de extensión de Kotlin (KTX) en los módulos KTX dejaron de estar disponibles (consulta las notas de la versión en las que se describe este cambio). Durante la fase de baja, las APIs obsoletas en los módulos de KTX seguirán funcionando y se mantendrán.
A partir de septiembre de 2024
Dejaremos de lanzar versiones nuevas de los módulos de KTX y quitaremos esos módulos de la Firebase BoM.
Las versiones anteriores de un módulo de KTX o la BoM seguirán funcionando, pero pasarán al fin del mantenimiento. Esto significa que dejaremos de agregar correcciones de errores, cambios retrocompatibles y funciones nuevas a los módulos de KTX. En cambio, todo el desarrollo futuro de Firebase en Android se realizará en los módulos principales (tanto para Java como Kotlin).
Cómo realizar la migración para usar las APIs de KTX desde los módulos principales
Si usas las APIs de extensiones de Kotlin (KTX), realiza las siguientes actualizaciones en tu app para comenzar a usar las APIs desde los módulos principales en lugar de los módulos de KTX.
Revisa tus dependencias de Gradle para que dependan del módulo principal en lugar del módulo de KTX. Por ejemplo, si usas la 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") }
Actualiza tu código para reemplazar todos los casos de APIs de KTX por las APIs reubicadas en el módulo principal en el paquete
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