最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

向创建的对象添加属性(Firebase函数)

IT培训 admin 9浏览 0评论

向创建的对象添加属性(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(...)
发布评论

评论列表 (0)

  1. 暂无评论