Tengo una aplicación (react-native) Estoy haciendo una consulta de búsqueda que encuentra un documento específico basado en uno de los campos de documentos, es un código de barras que se puede escanear y luego, usando el valor escaneado, quiero buscar el objeto en Firebase, cada objeto tiene el campo que contiene el valor del código de barras. Solo quiero encontrarlo.
Seguí este tutorial .
esto es lo que tengo actualmente:
useEffect(() => { saveData(); }, []); const saveData = async () => { const productRef = db.collection("products"); const queryRef = await productRef.where("barCode", "==", data).get(); console.log(queryRef); }pero esto no devuelve el resultado correcto, ¿qué me estoy perdiendo?
esta es la captura de pantalla del registro de la consola, pero al final tengo esto:
(truncado a los primeros 10000 caracteres)
const queryRef = await productRef.where("barCode", "==", data).get(); Esta consulta devuelve una QuerySnapshot que tiene una propiedad docs que es una matriz de DocumentSnapshot. Puede mapear una nueva matriz que contenga los datos de los documentos y configurarla en el estado:
const [products, setProducts] = useState([]) const saveData = async () => { const productRef = db.collection("products"); const queryRef = await productRef.where("barCode", "==", data).get(); setProducts(queryRef.doc.map(d => ({id: d.id, ...d.data()}))); }