我应该如何构造Firestore文档以及每次都需要阅读的大量文档

时间:2019-10-28 11:04:51

标签: firebase google-cloud-firestore structure document

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

  

Service1 *

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

Service2 *

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

我目前已安排每个服务作为其自己的文档的位置,总计1,180个。但是,当用户访问我的站点并希望选择一项服务时,服务器将提取全部1180个文件。只有100个用户,firebase会读取10万个文档。我当时想将所有服务的副本保存为csv,并在每次用户想要搜索服务时从那里加载。

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

1 个答案:

答案 0 :(得分:2)

  

是否有更好的数据结构

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

  

但是,当用户访问我的网站并希望选择一项服务时,服务器将提取全部1180。

这不是与Cloud Firestore进行交互的正确方法。您正在以高昂的代价下载大量的数据。除此之外,用户永远不会一次需要所有这些数据量。一个解决方案是将数据加载到较小的块中。对于Android,建议您从以下文章中查看答案:

  

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

没有必要。 Firestore已经拥有自己的缓存机制。因此,一旦获得文档,就始终会从缓存中读取该文档,只要在服务器上,就不会进行任何新更改。这里有更多信息:

  

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