Firestore не обновляет вложенные коллекции - PullRequest
0 голосов
/ 05 марта 2019

Я разрабатываю приложение реакции, использующее 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));
    });
}

Код может вставлять и обновлять данные, но он не стирает данные перед этим. Любое предложение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...