Estoy trabajando en una aplicación que permite a los usuarios especificar sus habilidades e intereses y luego recibir sugerencias de trabajos, según sus habilidades e intereses.
Ambos se almacenan en un documento de usuario como una matriz:
skills: ['computers', 'blah-blah'] interests: ['whatever']Cada trabajo también se almacena en Firestore con una matriz de habilidades e intereses (especificados por el creador).
Mi pregunta es, ¿cuál sería la mejor manera de encontrar un documento de trabajo que coincida con tantas habilidades e intereses como sea posible, según el usuario que realiza la solicitud?
Al igual que lo que Frank y Dharmaraj ya dijeron en los comentarios, le sugiero que verifique más el array-contains-any , por ejemplo:
import { query, where } from "firebase/firestore"; const skillsQuery = query(skillsRef, where('skills', 'array-contains-any', ['computers', 'blah-blah'])); const interestsQuery = query(interestsRef, where('interests', 'array-contains-any', ['whatever', 'etc'])); Solo tenga en cuenta las siguientes limitaciones de array-contains-any :
array-contains-any admite hasta 10 valores de comparación.