Несовместимые данные в коллекциях Firebase при одновременном обновлении существующих документов и создании новых документов - PullRequest
0 голосов
/ 16 февраля 2019

Я знаю, что не смог определить проблему в названии действительно хорошо, но, пожалуйста, выслушайте меня.

Вот что я пытаюсь сделать.У меня есть список материалов.Каждый материал имеет поле общего количества.Пользователь может создавать заказы.Заказы содержат тип материала и количество материала, приобретенного в этом заказе.Когда новый заказ добавляется в базу данных, общее количество соответствующего материала увеличивается в соответствии с новым заказом.

addOrder(order: Order) {
    const sub = this.materialsCollection
        .doc(order.material.name)
        .get()
        .subscribe(material => {
            console.log('material', material.data());
            const materialData = material.data();
            const updatedQuantity = materialData.quantity + order.quantity;
            this.materialsCollection.doc(materialData.name).update({
                quantity: updatedQuantity
            });
            order.date = new Date().toLocaleString();
            this.ordersCollection.doc(this.OrderID(order)).set({...order
            });
            sub.unsubscribe();
        });
}

Проблема заключается в том, что когда я добавляю заказы в быстрой последовательности, общее количествоматериал увеличивается в два раза, но второй порядок не создается.

Если я добавлю два порядка манго с количеством 10 в каждом заказе, общее количество манго будет равно 20, но вместо двух будет создан только один заказ.

Это происходит только тогда, когда я быстро добавляю заказы.

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