我应该如何构建每次需要阅读大量文档的Firestore文档

How should I structure Firestore documents with a large number of docs needed to be read each time

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

Service1*

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

服务 2*

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

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

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

Is there any better of structuring the data

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

However when a user visits my site and wants to select a service, the server would fetch all 1180.

这不是与 Cloud Firestore 交互的正确方式。您正在以高昂的成本下载大量数据。除此之外,用户永远不会同时需要那么多数据。一个解决方案是以较小的块加载数据。对于Android,我推荐你从下面post看我的回答:

I was thinking of saving a copy of all the services as a csv and loading it from there every time a user wants to search the service.

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

For the web, offline persistence is disabled by default. To enable persistence, call the enablePersistence method. Cloud Firestore's cache isn't automatically cleared between sessions. Consequently, if your web app handles sensitive information, make sure to ask the user if they're on a trusted device before enabling persistence.