我有以下功能:
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的新值。 我错过了什么?
答案 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;
}