同时更新现有文档和创建新文档时,firebase集合中的数据不一致

时间:2019-02-16 13:49:07

标签: javascript firebase google-cloud-firestore

我知道我无法很好地在标题中定义问题,但请听我说出来。

这就是我想要做的。我有材料清单。每种材料都有一个总数量字段。用户可以创建订单。订单包含物料类型和在该订单中购买的物料数量。 在数据库中添加新订单后,相应物料的总量将根据新订单增加。

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,但仅创建了一个订单,而不是两个。

只有在我快速添加订单时才会发生这种情况。

0 个答案:

没有答案