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

163
Vistas
Error al consultar un campo específico dentro de una matriz dentro de un documento en Firebase V9

Anteriormente publiqué una pregunta sobre cómo consultar un valor específico dentro de una matriz. Me dijeron que ya había una pregunta similar. He buscado la solución para esa pregunta, sin embargo, recibo un error. Este es mi código actualmente para verificar si el campo mal_id dentro de la matriz de favoritos contiene una identificación que yo pasé.

 const docRef = collection(db, 'users') const q = query(docRef, where('favourites', 'array-contains', {mal_id: id}))

Luego adjunté un método onSnapshot para ver si los datos existen, que es así

 onSnapshot(q, (snapshot) => { if(snapshot.data()){ console.log(true) } else{ console.log(false) } })

Pero recibo un error que dice que snapshot.data no es una función. idk si se supone que no debe usar un método onSnapshot en este tipo de consulta o mi código es incorrecto. He adjuntado una imagen de la estructura de mi base de datos. Gracias.

* Editar Entonces, he cambiado mi estructura de datos. Ahora estoy creando un nuevo campo llamado animeID y luego almacenando la identificación en él. Luego hago que la matriz contenga eso, pero la instantánea todavía me da el mismo error. Aquí está el código actualizado junto con una nueva imagen de la estructura de mi base de datos.

 const docRef = collection(db, 'users') const q = query(docRef, where('animeID', 'array-contains', `mal_id: ${id}`)) onSnapshot(q, (snapshot) => { if(snapshot.data()){ console.log(true) } else{ console.log(false) } })

Estructura de la tienda de fuego actualizada

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Como comentó Doug, el operador array-contains de Firestore verifica la equivalencia entre el valor que proporciona y un elemento de matriz completo. No puede encontrar un subconjunto de un elemento.

La solución común es agregar un campo adicional a su documento con solo los valores de mal_id que desea consultar. Entonces algo como:

 Favourites_mal_ids: [21]

Y luego puede realizar una array-contains en ese campo.

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