Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

169
Views
Firestore promete esperar los detalles del producto antes de devolver los productos

Sé que se han hecho preguntas similares a esta 1000 veces, pero por mi vida estoy luchando con algo que siento que es bastante simple.

Tenemos 2 tablas, una llamada order_lines y la otra order_lines_meta, primero necesito consultar order_lines y para cada línea obtener order_lines_meta y devolver eso

He probado muchas variaciones, aquí es donde estoy y estoy atascado, necesito que espere a que order_lines_meta regrese porque, de lo contrario, obtendré metadatos en blanco ya que los datos vienen después de que nodejs ya haya generado order_lines

Al final, un objeto que contiene información de pedidos, elementos de línea de objetos y, dentro de los elementos de línea, un objeto de metadatos.

Agradezco la ayuda, parece que no puedo envolver mi cerebro en esto, y ciertamente estoy abierto a otras formas de hacer esto también

Usando nodejs, express, mecanografiado, firestore

 const orderNumber = req.query.orderNumber as string; const customerName = req.query.customerName as string; const orderDate = req.query.orderDate as string; const pickListObj = { orderNumber: orderNumber, customerName: customerName, orderDate: orderDate, line_items: <any>[], }; db.collection('order_lines').where('number', '==', orderNumber).get().then((snap) => { const promises = <any>[]; snap.forEach(async (order: any) => { // get meta data const metaDataObj = <any>[]; const productName = order.data().name; const productQty = order.data().quantity; promises.push(db.collection('worder_line_meta').where('lineId', '==', order.data().lineId).get().then((doc: any) => { if (doc.display_value != '') { const meta = [{display_key: doc.data().display_key, display_value: doc.data().display_value}]; metaDataObj.push(meta); } })); }); return Promise.all(promises); }).then(() => { pickListObj.line_items.push({name: productName, quantity: productQty, meta_data: metaDataObj}); });
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Mueva la instrucción push del último .then dentro del .then anterior:

 promises.push(db.collection('worder_line_meta')...then((doc: any) => { if (doc.display_value != '') { ... } pickListObj.line_items.push({name: productName, quantity: productQty, meta_data: metaDataObj}); }));

En el último .then , encontrará el pickListObj completo.

Sin embargo, me pregunto si podría ser más simple y rápido unir las dos colecciones de bases de datos directamente en la base de datos y recuperar todo con una operación db.collection .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!