【发布时间】:2022-01-07 11:51:05
【问题描述】:
我正在重构我的 firebase 代码以支持模块化 firebase 版本。
重构“arrayRemove”函数后,我注意到它开始需要很长时间才能执行。大约1分钟。在 v8 中,这大约是 1 秒
这是我的代码:
const userRef = doc(db, 'users', userId)
try {
await updateDoc(userRef, {
items: arrayRemove(itemId),
})
console.log('REMOVED')
} catch (error) {
console.log(error)
}
执行此代码大约需要一分钟。对于旧版本,在相同环境中使用相同数据执行相同操作大约需要一秒钟。其余功能运行迅速。
Firebase 版本:9.6.1
任何想法为什么需要这么长时间以及如何使其更快?
【问题讨论】:
-
在 v8 和 v9 之间执行数组删除的方式没有根本变化,因为新 SDK 的 Firestore 有线协议没有更改。您能否在我们都可以测试的地方(例如 jsbin 或 stackblitz)设置性能差异的最小再现?
-
嗨@MAZ,有更新吗?
-
@FaridShumbar 感谢您愿意帮助解决此问题。我想重现此问题,但这需要开始一个新项目并在此处共享我的凭据。这可能需要一些时间......我也意识到,这个数组最初是一个错误的决定。我将使用集合代替
-
@FaridShumbar 我重新考虑了我的决定,发现使用数组是正确的。我找到了一种解决方法来删除项目而不使用删除功能。
标签: javascript firebase google-cloud-firestore