云功能已触发但未执行

时间:2018-06-13 11:39:16

标签: javascript firebase firebase-realtime-database google-cloud-functions

我有以下功能:

exports.onDataAdded = functions.database.ref('/Lager/Shafts/Rescue/582/582001').onWrite((change, context) => {
    if (change.before.exists()) {
            return null;
          }
          // Exit when the data is deleted.
          if (!change.after.exists()) {
            return null;
          }
          const original = change.after.val();

return change.after.ref('/Lager/Shafts/Rescue/583/583001').set(original);
});

我试图将产品1的数量保持等于产品2的数量(由于多种原因,不能将它放在相同的ID中)。它执行该功能并说状态正常,但不更新产品2的新值。 我错过了什么?

2 个答案:

答案 0 :(得分:1)

请尝试此操作,您的功能正在退出而不执行更新。

exports.onDataAdded = functions.database.ref('/Lager/Shafts/Rescue/582/582001').onWrite((change, context) => {
    if (change.after.exists()) {
        const original = change.after.val();
        return admin.database().ref('/Lager/Shafts/Rescue/583/583001').set(original);
    }
    // Exit when the data is deleted.
    if (!change.after.exists()) {
        return null;
    }
});

答案 1 :(得分:1)

这似乎是一个noop:

exports.onDataAdded = functions.database.ref('/Lager/Shafts/Rescue/582/582001').onWrite((change, context) => {
  if (change.before.exists()) {
    return null;
  }

或者更确切地说:当您删除/Lager/Shafts/Rescue/582/582001时,它只会超过此代码,这不是您正在尝试的内容。我的猜测是你在检查中意味着反向:

  if (!change.before.exists()) {
    return null;
  }