Quiero filtrar la consulta de firestore para obtener todos los documentos que no contienen un valor específico.
@react-native-firebase
import firestore from '@react-native-firebase/firestore'; const getUnreadDocs = async () => { const unreadDocs = await firestore() .collection('rooms') .doc('aDRKtxbhG9g5IfbKcsa4') .collection('messages') .where('seen', 'not-in', ['7B6jaZngXeN7V4r3eRoDBdlcj6m2']) .get(); console.log(`unreadDocs`, unreadDocs); };los documentos regresan de la consulta

¿Cómo se almacenan los datos?
tenemos colección
rooms Collection -> Docs -> fields | V messages Collection -> Docs -> fields
¿Qué debe devolver la consulta? como mencionamos en la consulta, los documentos no deben contener 7B6jaZngXeN7V4r3eRoDBdlcj6m2 en el campo seen
entonces, la consulta debe devolver solo un documento, es decir
Los operadores in / not-in comprueban si un campo de valor único actual tiene un valor que existe o no existe en una lista de valores que especifique. Pero su campo seen es una matriz, que no funcionará con este operador.
En su lugar, querrá usar array-contains en eso para verificar si hay un valor presente. No existe un operador de array-does-not-contain para verificar si un valor no está presente en el campo de la matriz.
Ver también: