Firebase SDK para Swift: 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

¿Qué es Firebase SDK para Swift?

\n\n

Firebase SDK (Software Development Kit) para el lenguaje Swift es un potente conjunto de herramientas de Google que proporciona a los desarrolladores de aplicaciones iOS una infraestructura lista para crear un backend (Backend-as-a-Service, BaaS). En lugar de escribir código de servidor desde cero, obtienes servicios en la nube listos: base de datos, autenticación, análisis, almacenamiento en la nube, notificaciones push y mucho más.

\n\n

Firebase SDK para Swift permite:

\n
    \n
  • Almacenar datos en tiempo real (Firestore y Realtime Database)
  • \n
  • Autenticar usuarios (email/contraseña, Google, Apple, Facebook, etc.)
  • \n
  • Cargar archivos en el almacenamiento en la nube (Cloud Storage)
  • \n
  • Enviar notificaciones push (Cloud Messaging)
  • \n
  • Recopilar análisis (Google Analytics for Firebase)
  • \n
  • Configurar pruebas A/B (Remote Config)
  • \n
  • Detectar errores (Crashlytics)
  • \n
\n\n

La biblioteca se distribuye a través de Swift Package Manager (SPM) o CocoaPods. Es el SDK oficial de Google, que cuenta con soporte y actualizaciones.

\n\n

Instalación de Firebase SDK para Swift

\n\n

Opción 1: Swift Package Manager (SPM) — Método recomendado

\n
    \n
  1. Abre tu proyecto en Xcode
  2. \n
  3. Ve a File → Add Packages...
  4. \n
  5. Pega la URL del repositorio: https://github.com/firebase/firebase-ios-sdk.git
  6. \n
  7. Selecciona la versión deseada (se recomienda la última estable)
  8. \n
  9. Selecciona los módulos necesarios (por ejemplo, FirebaseFirestore, FirebaseAuth)
  10. \n
  11. Haz clic en Add Package
  12. \n
\n\n

Opción 2: CocoaPods

\n

Si usas CocoaPods, agrega a tu Podfile:

\n
platform :ios, '13.0'\nuse_frameworks!\n\ntarget 'YourAppName' do\n  pod 'FirebaseFirestore'\n  pod 'FirebaseAuth'\n  pod 'FirebaseStorage'\n  pod 'FirebaseAnalytics'\n  pod 'FirebaseMessaging'\nend
\n

Luego ejecuta en la terminal:

\n
pod install
\n\n

Configuración del proyecto en la consola de Firebase

\n
    \n
  1. Ve a console.firebase.google.com
  2. \n
  3. Crea un nuevo proyecto o selecciona uno existente
  4. \n
  5. Agrega una aplicación iOS
  6. \n
  7. Descarga el archivo GoogleService-Info.plist
  8. \n
  9. Arrastra el archivo a la raíz de tu proyecto en Xcode
  10. \n
\n\n

Inicio rápido con ejemplo de código

\n\n

Después de la instalación y configuración, inicializa Firebase en AppDelegate.swift:

\n\n
import UIKit\nimport FirebaseCore\n\n@main\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n    func application(_ application: UIApplication,\n                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n        FirebaseApp.configure()\n        return true\n    }\n}
\n\n

Ahora puedes usar Firebase. Un ejemplo simple de escritura y lectura de datos desde Firestore:

\n\n
import FirebaseFirestore\n\nclass ViewController: UIViewController {\n    let db = Firestore.firestore()\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        addUser()\n        readUsers()\n    }\n\n    func addUser() {\n        db.collection("users").addDocument(data: [\n            "name": "Иван Петров",\n            "age": 25,\n            "email": "ivan@example.com"\n        ]) { error in\n            if let error = error {\n                print("Ошибка добавления: \\(error.localizedDescription)")\n            } else {\n                print("Пользователь успешно добавлен!")\n            }\n        }\n    }\n\n    func readUsers() {\n        db.collection("users").getDocuments { (snapshot, error) in\n            if let error = error {\n                print("Ошибка чтения: \\(error.localizedDescription)")\n            } else {\n                for document in snapshot!.documents {\n                    print("\\(document.documentID) => \\(document.data())")\n                }\n            }\n        }\n    }\n}

Recommendations