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

标签 javascript node.js firebase google-cloud-firestore google-cloud-functions

我正在 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/

相关文章:

javascript - 如何在 JavaScript 函数中使用可变数量的参数

angularjs - Node.js CLI 到网页包装器

mysql - Node Sequelize with Mysql order by,最后需要空值

javascript - 无法将数据发送到 Cloud Firestore

swift - 将项目从 firebase 加载到 pickerview 的问题

javascript - Elixir : How to Watch a Public Directory for Change?

javascript - 如何使用 JavaScript 获取选中的文本

javascript - 如何计算符合特定条件的 Firebase 子项目

javascript - JS 使用不同的填充

node.js - 使用express.static 为每个用户提供内容