gpt4 book ai didi

javascript - Firebase 云函数对象更新创建递归

转载 作者:行者123 更新时间:2023-11-30 08:24:24 25 4
gpt4 key购买 nike

我的应用程序有一个简单的云功能来跟踪创建/更新的时间戳。它看起来像这样:

export const objectChanges = functions
.firestore
.document('objects/{id}')
.onWrite(event => {
const patch: {created_at?: string, updated_at: string} = {
updated_at: <string> event.timestamp
};

if (!event.data.previous) {
patch.created_at = event.timestamp;
}

return event.data.ref.set(patch, {merge: true});
});

一旦我上传这个函数并在列表中创建/修改一个对象,它就会开始不断地勾选 updated_at。我猜它正在检测它自己对 updated_at 字段所做的更改。考虑到文档显示了此类更新的示例,这种行为让我感到困惑。

https://firebase.google.com/docs/functions/firestore-events#writing_data

是否有我遗漏的细微差别,或者这是 Firestore 错误?

最佳答案

如果您检查文档中给出的示例,则会检查一个条件以查看 name 是否已更改。如果是则只执行下面的代码。如果它没有改变,它只是 returns,像这样:

// We'll only update if the name has changed.
// This is crucial to prevent infinite loops.
if (data.name == previousData.name) return;

因此在您的情况下,您还需要检查对象的实际数据(除 updated_at 之外的所有字段)是否已更改。如果没有其他内容(updated_at 除外)发生变化,您应该简单地退出该函数。

关于javascript - Firebase 云函数对象更新创建递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48064776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com