[英]How to push all the documents in a collection with values to another collection in form of map firestore web
I have products in my cart which on checkout get converted to orders.我的购物车中有产品,在结账时会转换为订单。 I want all the documents in cart collection to be mapped as an object map / array in orders collection inside a single document.
我希望购物车集合中的所有文档都映射为单个文档中订单集合中的 object map / 数组。
function placeOrder(){
var uid = auth.currentUser.uid
db.collection('users').doc(uid).collection('carts')
.get().then((items)=>{
items.forEach((item)=>{
var item_key = item.id
db.collection('users').doc(uid).collection('orders').doc().set({
items : [item_key]
})
db.collection('users').doc(uid).collection('carts').doc(item_key).delete()
})
})
}
...
.get()
.then(snapshot => {
const ids = snapshot.docs.map(doc => doc.id)
db.collection('users')
.doc(uid)
.collection('orders')
.doc()
.set({items : ids})
}
...
.get()
.then(snapshot => {
const batch = db.batch()
const orderRef = db.collection('users').doc(uid).collection('orders').doc()
const cartRef = db.collection('users').doc(uid).collection('carts').doc(item_key)
batch.set(orderRef, {
// order fields
})
snapshot.forEach(docSnap => {
batch.set(orderRef.collection('order_items').doc(docSnap.id), {
// order item fields
})
})
batch.delete(cartRef)
batch.commit()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.