向创建的对象添加属性(Firebase函数)
我想在特定集合(订单)上创建对象我需要在对象保存之前向其添加一个新属性,不返回任何内容,无济于事。
我看过.firestore.DocumentBuilder#writing_data上的文档但这是用于onUpdate的,因此它无法按我的预期工作。
exports.createOrder = firestore.document('orders/{orderId}').onCreate((snap, context) => {
const newOrder = snap.data()
console.log('triggered', newOrder)
const orderId = randomize('A0', 10)
console.log({ orderId })
return newOrder.ref.set({ orderId }, { merge: true })
//newOrder.ref.set is undefined
return newOrder.set({ orderId }, { merge: true })
//newOrder.set is undefined
})
回答如下:snap.data()
返回原始JavaScript对象,其属性包含文档中字段的值。它不包含名为ref
的属性(除非您有一个文档字段也称为ref)。
如果需要写回已更改的文档,请使用snap.ref
中提供的DocumentReference类型对象。另请参阅传递给函数的DocumentSnapshot类型对象的API文档。
snap.ref.set(...)
向创建的对象添加属性(Firebase函数)
我想在特定集合(订单)上创建对象我需要在对象保存之前向其添加一个新属性,不返回任何内容,无济于事。
我看过.firestore.DocumentBuilder#writing_data上的文档但这是用于onUpdate的,因此它无法按我的预期工作。
exports.createOrder = firestore.document('orders/{orderId}').onCreate((snap, context) => {
const newOrder = snap.data()
console.log('triggered', newOrder)
const orderId = randomize('A0', 10)
console.log({ orderId })
return newOrder.ref.set({ orderId }, { merge: true })
//newOrder.ref.set is undefined
return newOrder.set({ orderId }, { merge: true })
//newOrder.set is undefined
})
回答如下:snap.data()
返回原始JavaScript对象,其属性包含文档中字段的值。它不包含名为ref
的属性(除非您有一个文档字段也称为ref)。
如果需要写回已更改的文档,请使用snap.ref
中提供的DocumentReference类型对象。另请参阅传递给函数的DocumentSnapshot类型对象的API文档。
snap.ref.set(...)