Firebase OnWrite的云功能

我正在看Firebase的新云功能,它说在做一个OnWrite时,你应该小心不要将数据保存回同一个孩子. (这将再次触发触发).

所以我想弄清楚,我如何设置修改日期在一个记录?

最佳答案
问题不在于您不能或不应该更改数据,而是需要防范无限循环.例如,设置时间戳可以重新触发将设置retrigger …等等的时间戳的函数.

但是,您可以做的是保护您的代码,确保以幂等方式标记状态,以使相同的代码不重新触发.例如:

exports.doThing = functions.database.ref('/events/{id}').onWrite(ev => {
  // prevent loops by guarding on data state
  if (ev.data.child('didThingAt').exists()) return;

  // do thing here...

  return ev.data.adminRef.update({
    didThingAt: admin.database.ServerValue.TIMESTAMP
  });
});

转载注明原文:Firebase OnWrite的云功能 - 代码日志