Firestore获取数据,然后更新一次。循环数据快照

问题描述 投票:0回答:1

数据不断循环。我如何使其只能读取一次?

 onAddToCart() {
        const { id, product, authUser, cart, shippingType } = this.state;

  this.props.firebase.cartItems().doc(authUser.uid).collection('total').doc('total').onSnapshot(snapshot => {
            this.props.firebase.cartItems().doc(authUser.uid).collection("total").doc("total").update({'total': snapshot.data().total + (product.salePrice > 0 ? product.salePrice : product.price * 1)
        }).then(() => {

        cogoToast.success("Added to store list");

    });

                console.log("doc info",snapshot.data().total)



        })

    }
javascript reactjs google-cloud-firestore
1个回答
0
投票

我刚刚找到了答案。因此,我将其改为on()而不是ontouch。这是新代码。

this.props.firebase.cartItems().doc(authUser.uid).collection('total').get().then(snap => {
    snap.forEach(doc => {
        console.log(doc.data());
        this.props.firebase.cartItems().doc(authUser.uid).collection("total").doc("total").update({'total': doc.data().total + (product.salePrice > 0 ? product.salePrice : product.price * 1)})

    });
});
© www.soinside.com 2019 - 2024. All rights reserved.