gpt4 book ai didi

javascript - 更新firestore中的文档会导致无限循环

转载 作者:行者123 更新时间:2023-12-03 01:37:58 26 4
gpt4 key购买 nike

因此,我尝试更新 firestore 中的文档,并在 .forEach 中执行此操作,当我执行更新时,它会导致无限循环。有人可以看看我的代码并告诉我如何阻止这个吗?我认为它只会运行一次,因为快照大小只有 1。

this.categoriesCollection.ref.where('name', '==', 
transaction.category.toLowerCase()).limit(1).onSnapshot((querySnapshot) =>
{
if (querySnapshot.size == 1) {
querySnapshot.forEach((doc) => {
this.categoriesCollection.doc(doc.id)
.update({totalSpent: doc.data().totalSpent + transaction.amount});
});
}
});

最佳答案

您要向返回一个文档的搜索查询添加一个监听器,然后对该文档进行更改。当该文档更改时,查询的结果会更改,并且您的监听器将使用新结果再次调用,这意味着它将更新另一个文档,这意味着查询会发生更改。等等等等

如果您只想通过查询更新文档,请不要使用 onSnapshot() 。只需使用 get() 一次性获取搜索结果,然后根据它提供的结果更新文档。

关于javascript - 更新firestore中的文档会导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50979333/

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