Subir y mostrar archivos en Flutter con Parse y Back4App
A veces las aplicaciones necesitan almacenar datos que a menudo son demasiado grandes para ser almacenados dentro de un ParseObject. El caso de uso más común es almacenar imágenes, pero también puedes usarlo para documentos, videos, música y otros datos binarios.
Para almacenar un archivo en Parse, siempre debes asociar el archivo con otro objeto de datos para que puedas recuperar esta ruta de archivo al consultar el objeto. Si no asocias, el archivo se almacenará, pero no podrás encontrarlo en la nube. Otro consejo importante es darle un nombre al archivo que tenga una extensión de archivo. Esta extensión permite a Parse determinar el tipo de archivo y manejarlo en consecuencia. También debemos mencionar que cada carga recibe un identificador único, por lo que no hay problema en cargar múltiples archivos usando el mismo nombre.
En Flutter, ParseFile y ParseWebFile te permiten almacenar y recuperar archivos de aplicación en la nube. Esta guía explica cómo almacenar y recuperar archivos en tu aplicación Flutter para gestionar el almacenamiento en la nube de Back4app.
- Si no asocias tu archivo a un objeto de datos, el archivo se convertirá en un archivo huérfano y no podrás encontrarlo en Back4App Cloud.
- Nota: Sigue el Tutorial de Nueva Aplicación Parse para aprender a crear una Aplicación Parse en Back4App.
- Una aplicación Flutter conectada a Back4app.
- Nota: Sigue el Instalar Parse SDK en el proyecto Flutter para crear un Proyecto Flutter conectado a Back4App.
- Un dispositivo (o dispositivo virtual) que ejecute Android o iOS.
- Para ejecutar este ejemplo de guía, debes configurar el plugin image_picker correctamente. No olvides agregar permisos para iOS para acceder a las imágenes almacenadas en el dispositivo. {: .btn target=”_blank” rel=”nofollow”}. Lee cuidadosamente las instrucciones para configurar el proyecto de Android e iOS.
Crea una Aplicación de Galería Flutter que suba y muestre imágenes desde Back4app.
Hay tres clases de archivos diferentes en este SDK de Parse para Flutter
- ParseFileBase es una clase abstracta, la base de cada clase de archivo que este SDK puede manejar.
- ParseFile extiende ParseFileBase y se utiliza por defecto como la clase de archivo en cada plataforma (no válido para web). Esta clase utiliza un File de dart:io para almacenar el archivo en bruto.
- ParseWebFile es el equivalente a ParseFile utilizado en Flutter Web. Esta clase utiliza un Uint8List para almacenar el archivo en bruto.
Los métodos disponibles en ParseFileBase para manipular archivos:
- save() o upload() para guardar el archivo en la nube
- download() para recuperar el archivo y almacenarlo en el almacenamiento local
Hay propiedades para obtener información del archivo guardado:
- url: Obtiene la URL del archivo. Solo está disponible después de guardar el archivo o después de obtener el archivo de un Parse.Object.
- name: Obtiene el nombre del archivo. Este es el nombre de archivo dado por el usuario antes de llamar al save() método. Después de llamar al método, la propiedad recibe un identificador único.
Para subir una imagen, solo necesitarás crear una ParseFileBase instancia y luego llamar al save método.
Hagamos eso en nuestra upload función:
El fragmento anterior crea y guarda la imagen, y después de que se complete el guardado, la asociamos con un ParseObject llamado Gallery.
Para mostrar imágenes, necesitas obtener la URL de la imagen.
Para subir una imagen, solo necesitarás crear una ParseFileBase instancia y luego llamar al save método.
Ahora usemos nuestro ejemplo para subir y mostrar imágenes en la Aplicación Flutter, con una interfaz simple.
Abre tu proyecto de Flutter, ve al main.dart archivo, limpia todo el código y reemplázalo con:
Encuentra tu ApplicationId y Client Key credenciales navegando a tu app Dashboard->Settings->Security and Keys en Back4App Website.
Actualiza tu código en main.dart con AMBOS valores de tu proyecto ApplicationId y ClientKey en Back4app.
- keyApplicationId = AppId
- keyClientKey = Client Key
Ejecuta el proyecto, y la aplicación se cargará como se muestra en la imagen.
En este punto, has subido una imagen en Back4App y la has mostrado en una aplicación Flutter.