Perfecto Carlos, todo funcionó correctamente. 🥳
Hola, Apple
Hablemos de iOS
Conozcamos XCode
¿Necesito un iPhone para ser iOS Developer?
Tu primera app en iOS
¡Hola, Mundo Apple!
Navegación con UINavigationController
Modales en la navegación
Utilizando controles en código
Autolayout vs SwiftUI
Autolayout
Listas con UITableView
Celdas personalizadas para nuestras listas.
Persistencia: UserDefaults
Manejo de dependencias
CocoaPods
Carthage
Servicios Web
Primeros pasos para consumir servicios
Afinando detalles para consumir servicios
Convirtiendo los JSON a modelos
Alamofire
Proyecto: PlatziTweets
Bienvenido a PlatziTweets
Configurando Proyecto
Diseñando vistas iniciales
Configuración de vistas iniciales
Configuración de registro
Descripción de la API de PlatziTweets
Conexión de la API y Autenticación
Registro de usuarios
Diseño del Tweet
Obteniendo Tweets
Creación de vista para publicar Tweets
Publicando Tweets
Borrando Tweets
Integración de la cámara
Conexión con Firebase
Configuración de XCode para correr app
Subir imagen a Firebase
Publicar Tweet con imagen
Tomando Videos para el Tweet
Publicar Tweet con video
Detalles del video
Accediendo al GPS
Implementando mapas con MapsKit
Mostrando todos los estudiantes en el mapa
Retos del proyecto
En producción
Enviar a pruebas con Firebase Distribution
Enviar tu aplicación a APP Store Connect
Distribución de tu app con TestFlight
iOS Avanzado
Dark Mode
SwiftUI
Terminando detalles de una vista con SwiftUI
Objective-C
Hola, iOS Developer
Felicidades
Expert Session: ¡nuevo espacio para resolver tus dudas sobre el desarrollo de Apps para iOS!
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Configurar Firebase para almacenar y gestionar imágenes desde tu aplicación móvil no es complicado. El primer paso es acceder a tu cuenta de Firebase y seleccionar la sección de "Storage". Firebase te guiará en la configuración inicial, incluyendo la selección del servidor de almacenamiento. Debes modificar las reglas de seguridad temporalmente permitiendo el acceso no autenticado, esto se hace cambiando la condición de las reglas de seguridad.
if request.auth != null // Cambia esto a
if request.auth == null // Para permitir el acceso no autenticado.
Esta modificación es solo mientras realizas las pruebas iniciales; posteriormente es vital asegurarse de que las reglas de seguridad sean estrictas para proteger la privacidad y seguridad de los datos de los usuarios.
En el módulo de creación de publicaciones de tu app, primero verifica que hay una imagen en el previsualizador (previewImageView
). Luego, convierte la imagen a un formato de datos comprimido para mejorar la velocidad de subida y reducir el tamaño de almacenamiento.
guard let imageSaved = previewImageView.image else { return }
guard let imageData = imageSaved.jpegData(compressionQuality: 0.1) else { return }
Prosigue creando la configuración necesaria para almacenar la imagen en Firebase, como el tipo de contenido (imagen JPG) y genera un nombre único para cada archivo ("imageName") que se suba, evitando asà sobrescribir archivos existentes.
let storageMetaData = StorageMetadata()
storageMetaData.contentType = "image/jpeg"
let storageRef = Storage.storage().reference()
let imageName = "\(Int.random(in: 100...1000)).jpg"
let folderReference = storageRef.child("tweetsImages/\(imageName)")
La función PUTDATA
permite subir la imagen en un hilo secundario para no bloquear la interfaz de usuario mientras se realiza la operación.
DispatchQueue.global(qos: .background).async {
folderReference.putData(imageData, metadata: storageMetaData) { metadata, error in
DispatchQueue.main.async {
if let error = error {
print("Error al subir la foto: \(error.localizedDescription)")
return
}
folderReference.downloadURL { url, error in
guard let downloadURL = url else { return }
print("URL de descarga: \(downloadURL.absoluteString)")
}
}
}
}
Una vez que la imagen se ha subido correctamente y tienes la URL de descarga, puedes proceder a incorporarla en el contenido de un post dentro de la aplicación. Previo a ello, asegúrate de manejar y mostrar correctamente cualquier posible error al usuario. Es crucial devolver el control a la interfaz principal una vez que la operación asÃncrona se completa, para ofrecer una experiencia de usuario fluida:
Finalmente, recuerda que el entorno del desarrollo es dinámico: mantén hábitos de documentación y consulta continua de las actualizaciones en Firebase para asegurar que tu implementación siga las mejores prácticas. Como consejo, aprovecha los recursos descargables del curso para orientarte adecuadamente y personalizar tu aplicación según tus necesidades de desarrollo.
Aportes 7
Preguntas 0
Perfecto Carlos, todo funcionó correctamente. 🥳
Generar un numero aleatorio para el nombre de la imagen no es necesariamente una buena practica, siempre existe la posibilidad de que se genere el mismo numero dos o mas veces. mi recomendacion es usar UUID, un identificador unico generado a partir del tiempo actual en milisegundos, para hacerlo basta con hacer lo siguiente:
let imageName = UUID().uuidString
it Works!! 😎
Al 11 de dic de 2021 FIrebase no ha cambiado
Perfecto Carlos, todo funcionó correctamente!!!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?