Export Firebase Data to CSV in Dart

English | Español

English

This Dart library enables you to export data from a Firebase collection to a CSV file and launch it for download. It's useful for retrieving and sharing data in an easily readable tabular format.

Features

  • Converts data from a Firebase collection to CSV format.
  • Allows customization of CSV columns and titles.
  • Provides options for filtering data by date, name, age, and other fields.
  • Option to include the document ID in the CSV file.

Usage

Follow these steps to use this library in your project:

  1. Import the library in your Dart file:

    import 'package:export_firebase_csv/export_firebase_csv.dart';
    
  2. Use the exportWithTitles function to export the data. Here's an example of how you can do it:

    await exportWithTitles(
      'collection_name',
      ['Title1', 'Title2', 'Title3'],
      ['field1', 'field2', 'field3'],
      startDate,
      endDate,
      'dateFieldName', //exact name of the Date field you are comparing to
      defaultNullString,
    );
    

    Make sure to customize the parameters according to your needs.

  3. Use the jsonToCsv function to convert JSON to CSV. Here's an example of how you can do it:

    await jsonToCsv(
      jsonString,
      'output_file_name',
    );
    

    This function does not require the same parameters as exportWithTitles.

Function Parameters

exportWithTitles Function

Parameters:

  • collectionName (String): The name of the Firebase collection from which you want to export data.
  • rowTitles (List String ): A list of titles to be used as column headers in the CSV file.
  • fieldNames (List String ): A list of field names that correspond to the data you want to export.
  • start (DateTime?): The start date for filtering data. (Optional)
  • end (DateTime?): The end date for filtering data. (Optional)
  • dateFieldName (String): The name of the field that contains date information.
  • defaultNullString (String?): The default value you want in case of a null value. (Default value "")

jsonToCsv Function

Parameters:

  • jsonData (dynamic): JSON data to convert to CSV.
  • fileName (String): The name of the output CSV file.

Caution: Be Mindful of Date Filters

Please be cautious when using date filters in the exportWithTitles function. If you don't specify start and end dates, the library will export the entire collection. Exporting a large collection can result in additional Firebase usage costs.

Contribution

If you'd like to contribute to this project, we're open to collaborations! Feel free to submit suggestions, improvements, or fixes through pull requests.

License

This project is licensed under the MIT License. Please refer to the LICENSE file for more details.

Contact

Author: Zeymer Montes Email: zeymer@nuclea.solutions GitHub Repository: GitHub

Español

Esta biblioteca Dart te permite exportar datos desde una colección de Firebase a un archivo CSV y lanzarlo para su descarga. Es útil para obtener y compartir datos en un formato tabular fácilmente legible.

Características

  • Convierte datos de una colección de Firebase en formato CSV.
  • Permite personalizar las columnas y títulos del archivo CSV.
  • Ofrece opciones para filtrar datos por fecha, nombre, edad y otros campos.
  • Opción para incluir el ID del documento en el archivo CSV.

Uso

Sigue estos pasos para utilizar esta biblioteca en tu proyecto:

  1. Importa la biblioteca en tu archivo Dart:

    import 'package:export_firebase_csv/export_firebase_csv.dart';
    
  2. Utiliza la función exportWithTitles para exportar los datos. Aquí hay un ejemplo de cómo puedes hacerlo:

    await exportWithTitles(
      'nombre_de_la_colección',
      ['Título1', 'Título2', 'Título3'],
      ['campo1', 'campo2', 'campo3'],
      fechaInicio,
      fechaFin,
      'nombreCampoFecha', // Nombre exacto del campo en la colección con el cual compararás las fechas.
      defaultNullString,
    );
    

    Asegúrate de personalizar los parámetros de acuerdo a tus necesidades.

  3. Utiliza la función jsonToCsv para convertir JSON a CSV. Aquí hay un ejemplo de cómo puedes hacerlo:

    await jsonToCsv(
      jsonString,
      'nombre_archivo_salida',
    );
    

    Esta función no requiere los mismos parámetros que exportWithTitles.

Parámetros de la Función

Función exportWithTitles

Parámetros:

  • collectionName (String): El nombre de la colección de Firebase de la que deseas exportar datos.
  • rowTitles (List String ): Una lista de títulos que se utilizarán como encabezados de columna en el archivo CSV.
  • fieldNames (List String ): Una lista de nombres de campos que corresponden a los datos que deseas exportar.
  • start (DateTime?): La fecha de inicio para filtrar los datos. (Opcional)
  • end (DateTime?): La fecha de fin para filtrar los datos. (Opcional)
  • dateFieldName (String): El nombre del campo que contiene información de fecha.
  • defaultNullString (String?): El valor por defecto en caso de recibir un valor null. (valor por defecto "")

Función jsonToCsv

Parámetros:

  • jsonData (dynamic): Datos JSON a convertir a CSV.
  • fileName (String): El nombre del archivo CSV de salida.

Precaución: Ten en Cuenta los Filtros de Fecha

Por favor, ten precaución al utilizar los filtros de fecha en la función exportWithTitles. Si no especificas las fechas de start y end, la biblioteca exportará toda la colección. Exportar una colección grande puede resultar en costos adicionales de uso en Firebase.

Contribución

Si deseas contribuir a este proyecto, ¡estamos abiertos a colaboraciones! Siéntete libre de enviar sugerencias, mejoras o correcciones a través de solicitudes de extracción (pull requests).

Licencia

Este proyecto está bajo la licencia Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.

Contacto

  • Autor: Zeymer Montes
  • Correo Electrónico: zeymer@nuclea.solutions
  • Repositorio en GitHub: GitHub