Firebase arrayRemove在模块化版本中需要很长时间



我正在重构我的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

有什么想法吗?为什么要花这么长时间?如何让它更快?

阅读文章后"最佳实践:Firebase中的阵列";

我发现了这种做法:

要删除密钥,我们保存整个数组,而不是使用.remove()

所以。。。我删除了代码中的项,然后更新了数组,只花了不到一秒钟的时间!

// removing item I need to remove at my local array
const updArr = arr(
(item) => item !== itemId
)
const userRef = doc(db, 'collection', 'id')
// updating array
await updateDoc(userRef, {
gifts: updArr,
})

//p.s。显然,arrayRemove函数有一些错误,但实际上我们不必使用函数

最新更新