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

166
Views
Eliminar todos los campos asociados vinculados a un documento que eliminé en otra colección

Para el contexto, estoy usando firebase/nodeJS en mi aplicación.

Estoy eliminando un usuario de una colección llamada trabajadores. Para hacerlo, actualizo el campo eliminado: verdadero en el documento del trabajador. No voy a eliminar el documento, porque quiero conservar su información si es necesario. Pero cuando elimino un trabajador, debo eliminarlo de todas las propiedades en las que está trabajando (tienen un campo llamado trabajadores, que es una matriz de todos los trabajadores asociados).

Por lo tanto, debo navegar por todas las propiedades de la colección asociada, verificar si el trabajador está en ella y eliminarlo.

Hay una manera de hacerlo ? Vi esta página: https://firebase.google.com/docs/firestore/manage-data/add-data#node.js_11 Pero no sé cómo usar estos recursos para hacerlo.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Así que finalmente lo hice solo. Primero, tuve que buscar todas las propiedades en las que se está trabajando, para hacer esto usé array-contains.

 let docsProperties = await db.collection('user').doc(id).collection("properties") .where("workers", "array-contains", workerId).get();

Luego quise navegar por todas estas propiedades y eliminar al trabajador. Pensé en hacer un ForEach primero. Pero el problema es que quería usar un await .update() con arrayRemove y los métodos asíncronos no se pueden usar dentro de ForEach. Así que usé promesas.

 let promises = []; docsProperties.forEach(doc => { promises.push(doc.ref.update({ workers: admin.firestore.FieldValue.arrayRemove(workerId) })); }); return Promise.all(promises);

arrayRemove es un método de la documentación de firebase para eliminar todas las ocurrencias de un elemento en un campo de matriz siguiente. ¡Así que busqué todas las propiedades, agregué todas las promesas y las ejecuté!

funcionó perfectamente, si alguien tiene preguntas no lo dude.

about 4 years ago · Juan Pablo Isaza 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!