Firebase Android SDK para Kotlin: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Firebase Android SDK para Kotlin: guía completa con ejemplos

1. ¿Qué es y para qué sirve?

Firebase Android SDK es un potente conjunto de herramientas de Google que proporciona a los desarrolladores una infraestructura de servidor lista para usar en aplicaciones móviles. En lugar de crear y mantener tu propio backend, puedes usar Firebase para autenticación de usuarios, almacenamiento de datos en tiempo real, envío de notificaciones push, análisis y mucho más. La biblioteca se integra completamente con el ecosistema Android y está escrita en Kotlin siguiendo las prácticas de desarrollo modernas.

El objetivo principal de Firebase es acelerar el desarrollo de aplicaciones, eliminando la necesidad de escribir código de servidor complejo. Obtienes APIs listas para trabajar con bases de datos (Cloud Firestore y Realtime Database), almacenamiento en la nube (Cloud Storage), autenticación (Firebase Auth), análisis (Google Analytics for Firebase) e incluso aprendizaje automático (ML Kit). Todos los servicios se escalan fácilmente y no requieren administración de servidores.

Para los desarrolladores de Kotlin, Firebase ofrece APIs completamente tipadas con soporte para corrutinas, Flow y otras características modernas del lenguaje. Esto hace que el código sea más seguro, legible y eficiente. La biblioteca se utiliza en millones de aplicaciones en todo el mundo, incluyendo gigantes como The New York Times, Duolingo y Shazam.

2. Instalación

Firebase Android SDK se instala a través del sistema de gestión de dependencias Gradle. A diferencia de pip o npm, no hay un solo comando: debes agregar varias líneas a los archivos del proyecto.

Paso 1: Agregar el plugin de Google Services

En el archivo raíz build.gradle.kts (nivel de proyecto), agrega:

plugins {
    id("com.google.gms.google-services") version "4.4.2" apply false
}

Paso 2: Conectar Firebase BoM y dependencias

En el archivo build.gradle.kts del módulo de la aplicación (app), agrega:

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.gms.google-services")
}

dependencies {
    // Firebase Bill of Materials — gestiona las versiones
    implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
    
    // Módulos principales de Firebase
    implementation("com.google.firebase:firebase-analytics")
    implementation("com.google.firebase:firebase-auth")
    implementation("com.google.firebase:firebase-firestore")
    implementation("com.google.firebase:firebase-storage")
    implementation("com.google.firebase:firebase-messaging")
    implementation("com.google.firebase:firebase-config")
}

Paso 3: Archivo google-services.json

Descarga el archivo google-services.json desde la consola de Firebase y colócalo en la carpeta app/ de tu proyecto. Este archivo contiene todas las claves e identificadores para conectarte a tu proyecto de Firebase.

3. Inicio rápido — ejemplo mínimo funcional

Creemos una aplicación simple que registre un evento de apertura de pantalla en Firebase Analytics.

// MainActivity.kt
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.ktx.Firebase

class MainActivity : AppCompatActivity() {
    
    private lateinit var firebaseAnalytics: FirebaseAnalytics

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        // Inicialización de Firebase Analytics
        firebaseAnalytics = Firebase.analytics
        
        // Registro del evento de apertura de pantalla
        val bundle = Bundle().apply {
            putString(FirebaseAnalytics.Param.SCREEN_NAME, "MainScreen")
            putString(FirebaseAnalytics.Param.SCREEN_CLA                    

Recommendations