如何在Firestore中“获取集合中的所有文档”?

yaq*_*awa 3 javascript google-cloud-firestore

我从文档中看到了“获取集合中的所有文档”的示例代码。

import { collection, getDocs } from "firebase/firestore";

const querySnapshot = await getDocs(collection(db, "cities"));
querySnapshot.forEach((doc) => {
  // doc.data() is never undefined for query doc snapshots
  console.log(doc.id, " => ", doc.data());
});

Run Code Online (Sandbox Code Playgroud)

但我想知道这是否真的能从集合中获取所有文档。

我以前使用过DynamoDB,在DynamoDB中你不能一次获取表中的所有项目,如果数据集太大,要获取表中的所有项目你必须分页(发送多个请求)。例如,如果所有项目的大小为 10MB,则您必须发送 10 个请求才能获取所有项目。

我想知道此限制是否也适用于 Firestore?即使大小约为 1GB,我真的可以通过一次请求获取集合的所有数据吗?

Fra*_*len 8

我想知道这是否真的能从集合中获取所有文档。

是的,它会。事实上,这正是该代码示例出现在有关获取集合中所有文档的文档中的原因。

如果您认为此文档数量可能超出连接或设备可以处理的范围,则可以限制检索的文档的最大数量。如果您想选择性地显示更多文档,您可以实现基于光标的分页