【发布时间】:2020-09-17 03:17:10
【问题描述】:
因此,在我的 Web 应用程序中,我从 firebase 获取数据,到它准备好时它将拥有大约 5000 个文档。因此,为了减少读取次数,我在 firebase 中保留了一个数组,其中包含每个文档的 id 列表,我读取了该数组,然后与我在本地保存的列表进行比较。如果缺少 id,我会从 firebase 读取该特定文档(Firebase 网站的速度肯定会减慢,因为到目前为止有一个包含 3000 个文档的数组)。
但是,考虑一下我有 2000 多个文档丢失的情况,我必须根据我通过比较 firebase 和本地数组创建的 missingList 一个一个地获取它们。实在是太慢了,因为我正在使用等待,所以获取甚至一百个文档都需要很长时间。如果我不这样做,那么 firebase 的请求超载,并且由于某种原因它会显示我的网络已断开连接的警告。
获取具有数组中给定 id 的文档的最佳方法是什么,没有损失并且足够快?有没有办法像批量写入、更新和设置一样批量读取文档?
假设 Firebase 有 [1234, 1235, 1236, 1237],而我只有 [1234],所以我需要从中读取 [1235, 1236, 1237]。
我正在使用 for 循环遍历每个 id 并像这样获取相应的文档
for (let i = 0; i < missingList.length; i++) {
var item = await db.collection('myCollection').doc(missingList[i]).get().then((snapshot) => snapshot.data())
await saveToDB(item) //I use PouchDB for local storage
}
【问题讨论】:
-
您预计会有多少用户同时使用该应用?
-
@ThienLD 目前只有一个,它是为一位用户量身定做的。
-
好的,那我想我有办法了
标签: javascript firebase google-cloud-firestore