首页 > 解决方案 > 我应该如何构建每次都需要阅读大量文档的 Firestore 文档

问题描述

我有一个服务列表,每个服务都有一些结构如下的字段

服务1*

     ServiceID*
     NetID*
     Country*
     price*
     xxx*
     xxx*
     10 fields in total*

服务2*

     ServiceID*
     NetID*
     Country*
     price*
     xxx*
     xxx*
     10 fields in total*

我目前已经安排了每个服务都是自己的文档,总共有 1,180 个。但是,当用户访问我的站点并想要选择一项服务时,服务器将获取所有 1180 个。只有 100 个用户,firebase 将读取 100k 个文档。我正在考虑将所有服务的副本保存为 csv 并在每次用户想要搜索服务时从那里加载它。

有没有更好的结构化数据或使用其他方法来减少我对 Firestore 的读取计数。

标签: firebasegoogle-cloud-firestorestructuredocument

解决方案


有没有更好的结构化数据

没有其他更好的方法可以做到这一点。

但是,当用户访问我的站点并想要选择一项服务时,服务器会获取所有 1180。

这不是与 Cloud Firestore 交互的正确方式。您正在以高昂的成本下载大量数据。除此之外,用户永远不会一次需要所有这么多的数据。一个解决方案是以更小的块加载数据。对于 Android,我建议您从以下帖子中查看我的答案:

我正在考虑将所有服务的副本保存为 csv 并在每次用户想要搜索服务时从那里加载它。

没有必要这样做。Firestore 已经有自己的缓存机制。所以一旦你得到一个文档,它总是会从缓存中读取,只要在服务器上,没有进行新的更改。更多信息在这里:

对于 Web,默认情况下禁用离线持久性。要启用持久性,请调用 enablePersistence 方法。Cloud Firestore 的缓存不会在会话之间自动清除。因此,如果您的 Web 应用程序处理敏感信息,请确保在启用持久性之前询问用户他们是否在受信任的设备上。


推荐阅读