es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando importar datos de un archivo CSV a Firestore.

Estoy usando el código a continuación para cargar datos en Firestore pero obtengo el mensaje de error a continuación:

SyntaxError: No se puede utilizar la declaración de importación fuera de un módulo

en esta línea de código:

“importar promesas desde ‘fs’;”

import { promesas } from 'fs';
const { readFile } = promesas;
import { prpromisifyomisify } from 'util';
const parse = prpromisifyomise(importar('csv-parse'));
import { Firestore } from '@google-cloud/firestore';

si (process.argv.length < 3) {
console.error(‘Por favor, incluye una ruta hacia un archivo csv’);
process.exit(1);
}

const db = new Firestore();

function escribirEnFirestore(registros) {
const commitsEnLote = [];
let lote = db.batch();
registros.forEach((registro, i) => {
var docRef = db.collection(‘firebasetest’).doc(registro.acctid);
lote.set(docRef, registro);
if ((i + 1) % 500 === 0) {
console.log(Se está escribiendo el registro ${i + 1});
commitsEnLote.push(lote.commit());
lote = db.batch();
}
});
commitsEnLote.push(lote.commit());
return Promise.all(commitsEnLote);
}

async function importarCsv(nombreArchivoCsv) {
const contenidoArchivo = await readFile(nombreArchivoCsv, ‘utf8’);
const registros = await parse(contenidoArchivo, { columns: true });
try {
await escribirEnFirestore(registros);
}
catch (e) {
console.error(e);
process.exit(1);
}
console.log(Se escribieron ${registros.length} registros);
}

importarCsv(process.argv[2]).catch(e => console.error(e));

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “SyntaxError: No se puede utilizar la declaración de importación fuera de un módulo” se produce al utilizar una declaración de importación fuera de un módulo, lo cual no es compatible con la versión de Node.js que se está utilizando. Para solucionar este problema, reemplace las declaraciones de importación con declaraciones de require, de la siguiente manera:

    const fs = require('fs').promises;
    const util = require('util');
    const parse = util.promisify(require('csv-parse'));
    const { Firestore } = require("@google-cloud/firestore");

    Esto debería resolver el error de sintaxis y permitir que los datos se carguen correctamente en Firestore.

Comments are closed.