Я разрабатываю приложение реакции, использующее Firebase. Я хочу обновить все данные коллекции, включая ее подколлекции. Это означает, что мне нужно удалить все данные из всех вложенных коллекций и вставить обновленные данные. Поэтому я создал следующий код:
async update(editingPlan) {
return new Promise(async (resolve) => {
const planRef = database.collection(PLAN_COLLETION)
.doc(editingPlan.id);
console.log(editingPlan);
await keys(editingPlan.days).forEach(async day => {
const docs = await planRef.collection(day).get();
docs.forEach(async doc => {
await doc.ref.delete();
});
});
await forIn(editingPlan.days, (activities, day) => {
const listRef = planRef.collection(day);
activities.forEach(async (activity, index) => {
const { id, ...data } = activity;
if (id) {
await listRef.doc(id).update(data);
} else {
const doc = await listRef.add(data);
editingPlan.days[ day ][ index ] = { id: doc.id, ...data };
}
});
});
resolve(this._coercePlan(editingPlan));
});
}
Код может вставлять и обновлять данные, но он не стирает данные перед этим. Любое предложение?