gpt4 book ai didi

javascript - 如何以map firestore web的形式将集合中具有值的所有文档推送到另一个集合

转载 作者:行者123 更新时间:2023-12-02 22:33:20 25 4
gpt4 key购买 nike

我的购物车中有产品,结账时这些产品会转换为订单。我希望将购物车集合中的所有文档映射为单个文档内的订单集合中的对象映射/数组。

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()
})
})
}

最佳答案

订单商品 ID => 数组字段:

...
.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()
}

关于javascript - 如何以map firestore web的形式将集合中具有值的所有文档推送到另一个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58821394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com