fbpx
Get In Touch
1201 3rd Avenue Seattle, WA 98101, US
(HQ) Av. Punto Sur 31, Tlajomulco de Zúñiga, Jal 45050, MX
Carrera 11B # 99 - 25, Btá, 110221, CO
Let's talk
hello@inmediatum.com
Ph: +1 (650) 603 0883
Sales attention M - F 9am - 5pm (CT)
Get support
Careers
Endless inspiration and meaningful work
See open positions
Back

Cloud Storage – Simple, rapido y seguro

¡Qué tal! Eduardo Rodríguez de este lado del monitor para hablarles un poco acerca de Cloud Storage para Android, pero antes no olvides pasarte por mi articulo anterior en el cual explico como crear una cámara personalizada en Android.

Un poco de contexto

Todo programador ha tenido algún proyecto donde requiera obtener contenido creado por el usuario, ya sea desde un simple archivo de texto hasta algo más complejo como una fotografía o un video, pero ¿Que pasa cuando ese contenido debe ser compartido con otras partes del sistema?

Pongamos un ejemplo muy simple, tenemos una red social disponible para Android, iOS y web donde el usuario puede tener sesiones abiertas simultáneamente, ¿Que pasa cuando el usuario sube una imagen desde Android? No solo se queda visible en esa aplicación, esta imagen debe ser sincronizada y visible también para las aplicaciones iOS y web.

¿Como funciona esto?

Existen múltiples maneras de afrontar este requerimiento, pero básicamente se necesita un servidor donde el contenido que el usuario genere se centralice y este disponible para todas las aplicaciones que requieran acceso al mismo. Aquí es donde entra Cloud Storage.

¿Que es Cloud Storage?

Cloud Storage es un servicio de Firebase que te permite almacenar cualquier contenido que el usuario genere tal como fotos, imágenes, audios, videos, etc.

De esta manera se puede acceder a dicho contenido desde diferentes plataformas.

Algunas cosas a considerar antes de empezar con Cloud Storage en Android

Crear un proyecto en Firebase Console

El primer paso antes de poder utilizar cualquier herramienta de Firebase es ingresar a su Firebase console y crear nuestro proyecto.

Configurar Firebase en Android

Después de haber generado nuestro proyecto el siguiente paso seria configurar Firebase en nuestro proyecto Android, si no estas familiarizado con este proceso aquí te dejo un link con la información necesaria para hacerlo.

Creando nuestro Storage

Ya que tenemos la configuración básica nuestro siguiente paso seria activar la función de storage en la consola de Firebase, para esto solo hacemos lo siguiente:

1.- Dar clic en la opción Storage que se encuentra en el menú de la parte izquierda de nuestra consola.

2.- Presionamos en Get started.

3.- Se nos mostrara un cuadro de diálogo explicándonos que por el momento las reglas de lectura y escritura permitirán a todo usuario registrado acceder a la información en nuestro storage y que al terminar de definir nuestra estructura debemos cambiarlas por seguridad, presionamos Next.

4.- El siguiente cuadro de diálogo nos permitirá seleccionar la ubicación de nuestro storage, presionamos Done

¡Listo! Con estos simples pasos ya tenemos listo nuestro storage y estamos listos para empezar a utilizarlo desde nuestra aplicación de Android.

Veamos el código

Lo primero que debemos hacer en nuestro proyecto de Android es agregar la dependencia en nuestro archivo build.gradle a nivel de módulo:

implementation 'com.google.firebase:firebase-storage:19.2.0'

Ahora si veamos el código:

//Creating random file to upload
val newTxtFile = File(this.getExternalFilesDir(null)?.path,"cloudstoragetest.txt")
newTxtFile.createNewFile()

//Getting our storage instance
val storage = FirebaseStorage.getInstance()
//Getting our path to the file
val txtRef = storage.reference.child("txts/cloudstoragetest.txt")
//This is the code that uploads the file
val uploadTask = txtRef.putFile(Uri.fromFile(newTxtFile))
uploadTask.addOnFailureListener {
    Log.i("CLOUD STORAGE", "ERROR")
}.addOnSuccessListener { taskSnapshot ->
    Log.i("CLOUD STORAGE", "SUCCESS")
}
//This code will get you the url of the file
txtRef.downloadUrl.addOnFailureListener {
    Log.i("CLOUD STORAGE", "ERROR")
}.addOnSuccessListener {
    Log.i("CLOUD STORAGE", it.path)
}

Como puedes observar es un código bastante sencillo, lo que está pasando ahí es que estamos generando un archivo de texto para poder subir a nuestro storage:

val newTxtFile = File(this.getExternalFilesDir(null)?.path,"cloudstoragetest.txt")
newTxtFile.createNewFile()

Las lineas siguiente son las que obtienen la instancia a nuestro storage y una referencia a la ruta y nombre donde sera guardado nuestro archivo:

val storage = FirebaseStorage.getInstance()
val txtRef = storage.reference.child("txts/cloudstoragetest.txt")

Esta siguiente parte de código genera una tarea para cargar el archivo a nuestro storage y agrega un par de callbacks para obtener el resultado de la acción:

val uploadTask = txtRef.putFile(Uri.fromFile(newTxtFile))
uploadTask.addOnFailureListener {
Log.i("CLOUD STORAGE", "ERROR")
}.addOnSuccessListener { taskSnapshot ->
Log.i("CLOUD STORAGE", "SUCCESS")
}

Y por último esta siguiente parte usa el mismo task para obtener la URL de nuestro storage después de que el archivo ya está cargado exitosamente:

txtRef.downloadUrl.addOnFailureListener {
Log.i("CLOUD STORAGE", "ERROR")
}.addOnSuccessListener {
Log.i("CLOUD STORAGE", it.path)
}

Y es prácticamente todo.

En este pequeño código generamos un archivo, lo subimos a nuestro storage y obtuvimos la URL para poder descargarlo.

Conclusion

Como podrás ver utilizar Cloud Storage es muy sencillo y tiene muchas ventajas en cuanto a la rapidez con que puedes subir y utilizar archivos en diferentes plataformas y dispositivos. Te invito a que le des una probada y me cuentes que tal te fue con esta asombrosa herramienta.

Espero este post te haya ayudado.

Hasta la próxima.

Eduardo Rodriguez
Eduardo Rodriguez

We use cookies to give you the best experience. Cookie Policy