Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

227
Vistas
¿Cómo iterar a través de subcolecciones anidadas en flutter web?

Tengo un conjunto de comerciantes y cada comerciante tiene un documento y luego una colección, cada uno con subcolecciones y documentos anidados.

Creé un ciclo para que cada vez que el usuario haga clic en el div, se llame a la función para obtener una instantánea de la siguiente colección en la base de datos.

Pero la función no está llamando porque estoy tratando de almacenar el valor de cada documento y colección en una matriz y luego llamar a esa matriz en la función para vincular la base de datos a la aplicación web (si eso tiene algún sentido).

Pero arroja un error de Uncaught TypeError: no se pueden leer las propiedades de undefined (leyendo 'onSnapshot'). ¿Alguna idea sobre cómo llamar al siguiente documento y subcolección en la base de datos?

El resultado de console.log para la unión es: 'doc(Materiales de construcción).colección(Materiales de construcción)'

Pero la salida de console.log para la referencia es: 'indefinido'

Aquí está el código:

 $(".outer-body").click(function(){ var src = $(this).text().trim(); sourceArray.push(src); var doc; var collection; var dataArray = []; for (var x = 0; x < sourceArray.length; x++){ var sourceX = sourceArray[x]; if(sourceArray[x] == sourceArray[0]){ doc = "doc(" + sourceX + ")"; } else { doc = ".doc(" + sourceX + ")"; } collection = ".collection(" + sourceX + ")"; dataArray.push(doc + collection); } var join = dataArray.join(''); console.log(join); const ref = db.collection("all_merchants").doc(customClaim).collection(customClaim).join console.log(ref); ref.onSnapshot((querySnapshot) => { console.log(doc.id, '=>', doc.data()); }); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para hacer que una referencia de documento sea dinámica, debe actualizar el argumento de la función.

'function(argument)' probablemente no funcione como se esperaba. Este, por otro lado, será: function('argument') . Es importante recordar que estas son funciones, no cadenas.

La superficie de la API de QueryDocumentSnapshot es idéntica a la de DocumentSnapshot. El método exist() siempre devolverá verdadero, y getData() nunca devolverá nulo, porque los resultados de la consulta contienen solo documentos existentes.

Recomiendo usar querySnapshot.exists() para ver si el documento que está buscando realmente está allí. De esa manera, podrá lidiar con cualquier error de manera más efectiva.

Recuerda validar que la versión actual sea la V9, ya que así será más fácil darte soporte en el futuro.

Incluir un enlace de Cómo evitar obtener "No se puede leer la propiedad de indefinido" en JavaScript que también podría ayudar.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda