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.

¿Cómo consultar Firestore desde un script de k6?

Estamos intentando hacer una consulta a Firestore a través de un script de k6 en una colección.
Para integrar la biblioteca de Firestore, seguimos esta guía en el sitio web de k6:
https://k6.io/docs/using-k6/modules/#setting-up-the-bundler

Cuando ejecutamos nuestro script, obtenemos este error raro que no podemos encontrar en la documentación de Firestore:

@firebase/firestore: Firestore (8.1.2): Error en la inicialización de la consulta ‘Query(target=Target(micolecciónaquí, orderBy: [timestamp (asc), nombre (asc)]); limitType=F’: TypeError: El valor no es un objeto: indefinido

El script es el siguiente:

import ‘core-js/stable’;
import ‘regenerator-runtime/runtime’;
import firebase from ‘firebase/app’;
import ‘firebase/firestore’;
import { sleep } from ‘k6’;
import behavior from ‘./tests/behaviors/index.js’;
import scenariosAndStages from ‘./tests/options/index.js’;

const firebaseConfig = {
apiKey: ***,
authDomain: ***,
projectId: ***,
storageBucket: ***,
messagingSenderId: ***,
appId: ***,
};

firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();

const conf = {
multiply: __ENV.MULTIPLY || 1,
};

export const options = {
ext: {
loadimpact: {
name: __ENV.NAME,
projectID: __ENV.PROJECT_ID,
distribution: {
‘amazon:us:ashburn’: { loadZone: ‘amazon:us:ashburn’, percent: 100 },
},
},
},
discardResponseBodies: true,
scenarios: __ENV.SCENARIOS ? { [__ENV.SCENARIOS]: scenariosAndStages.scenarios[__ENV.SCENARIOS] } : undefined,
stages: scenariosAndStages.stages[__ENV.STAGES],
};

export default () => {
db
.collection(‘my_collection_here’)
.orderBy(‘timestamp’)
.get()
.then(console.log);
sleep(10);
behavior.myBehavior(‘prueba de carga de aplicación una llamada’, conf.multiply);
};

¿Qué estamos haciendo mal?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay un problema con la inicialización de la consulta para una consulta de Firestore. Específicamente, parece que se está pasando un valor indefinido al objeto Query.

    Una posible razón para este error es que el campo timestamp en el método orderBy puede que no exista en la colección de Firestore. Verifica si el campo timestamp está presente y si está definido con el tipo de datos correcto en el esquema del documento.

    Otra posibilidad es que haya un error de escritura o un error en el nombre de la colección o en el método orderBy. Verifica cuidadosamente que el nombre de la colección y los parámetros del método coincidan exactamente con la documentación de Firestore.

    Por último, asegúrate de que las reglas de Firestore estén configuradas correctamente para permitir el acceso de lectura a la colección que se está consultando, y que los detalles de la conexión a la base de datos de Firestore estén especificados correctamente en el objeto firebaseConfig.

    Para solucionar el problema, puedes intentar imprimir el mensaje de error y también envolver la consulta dentro de un bloque try-catch. Esto te proporcionará más información sobre el error y te ayudará a identificar la causa raíz.

Comments are closed.