uploadImage method

Future<String?> uploadImage(
  1. File file,
  2. String fileName
)

Método que sube una imagen al bucket de almacenamiento de Supabase.

Utiliza el bucket avatars y guarda el archivo en la carpeta users/ con el nombre especificado.

Parámetros:

  • file: Archivo de imagen a subir.
  • fileName: Nombre con el que se guardará el archivo en el bucket.

Retorna:

  • String?: URL pública del archivo si la subida fue exitosa, o null si ocurrió algún error durante la operación.

Implementation

Future<String?> uploadImage(File file, String fileName) async {
  try {
    final fileBytes = await file.readAsBytes();
    final mimeType = lookupMimeType(file.path);

    final response = await supabase.storage.from('avatars').uploadBinary(
          'users/$fileName',
          fileBytes,
          fileOptions: FileOptions(contentType: mimeType),
        );

    if (response.isEmpty) return null;

    return supabase.storage.from('avatars').getPublicUrl('users/$fileName');
  } catch (e) {
    DatabaseHelper.logger.e("Error al subir imagen: $e");
    return null;
  }
}