我正在 Hook 在特定集合(订单)上创建对象 我需要在保存对象之前向该对象添加一个新属性,而不返回任何内容,但无济于事。
我查看了https://firebase.google.com/docs/reference/functions/functions.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(...)
关于javascript - 向创建的对象添加属性(Firebase 函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58312876/