Я знаю, что не смог определить проблему в названии действительно хорошо, но, пожалуйста, выслушайте меня.
Вот что я пытаюсь сделать.У меня есть список материалов.Каждый материал имеет поле общего количества.Пользователь может создавать заказы.Заказы содержат тип материала и количество материала, приобретенного в этом заказе.Когда новый заказ добавляется в базу данных, общее количество соответствующего материала увеличивается в соответствии с новым заказом.
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, но вместо двух будет создан только один заказ.
Это происходит только тогда, когда я быстро добавляю заказы.