Estoy tratando de eliminar un objeto de la matriz en Firestore, pero encontré un obstáculo. ¿Cuáles son los requisitos o la referencia para realizar la eliminación? ¿Un valor clave en el objeto es suficiente para hacer la eliminación o el objeto debería ser idéntico al que se está eliminando?
const deleteWeek = async () => { const docRef = doc(db, 'Weeks', id); await updateDoc(docRef, { weeks: arrayRemove({ weekId: '7518005f-7b10-44b6-8e0a-5e41081ee064', }), }); }; deleteWeek(); }sin embargo, la semana en la base de datos se ve así
{name ,"Week 2" days : [/*data all kinds*/] weekId : "7518005f-7b10-44b6-8e0a-5e41081ee064"}Si es una matriz de objetos, entonces necesita conocer todo el objeto para usar arrayRemove() Por ejemplo, si un documento se ve así:
{ ...data weeks: [ { name: "Week 2", days: [/*data all kinds*/] weekId: "7518005f-7b10-44b6-8e0a-5e41081ee064"} } ] } Tendrá que pasar el objeto de la semana completa en arrayRemove() . Puede ser mejor almacenar dichos datos en subcolecciones para que pueda consultar/eliminar uno específico.