【发布时间】:2019-11-01 18:32:01
【问题描述】:
我有一个商店网络应用 React 前端,Firebase 在后面,Firestore 作为 DB。
我的商店有 500 件商品。我期待只有桌面客户端。
最好的做法是:
- 在初始加载时一次将所有项目下载到本地对象数组中,并使用
.filter()进行过滤; 或 - 在客户端过滤时调用数据库以仅返回过滤后的数据。
为了一次性下载,我在想:
- 每个过滤器(也许)更快,因为它是在本地完成的。我不确定对象数组的过滤速度比从服务器获取响应的速度要慢。由于客户端只会是桌面,所以我的想法很大。
- 不需要为每个过滤器与服务器通信。 Firestore 还会计算读取、写入或事务次数的配额,因此它应该会减少我的配额使用量。
- 在同一个客户端上重复相同的过滤器不需要再次请求相同的数据。就像客户端可能会过滤,然后重置过滤器,然后再次执行相同的过滤器。
仅下载过滤后的结果,我在想:
- 在服务器上过滤并回复(可能)比本地
.filter()更快。 - 客户总能获得最新信息。
- 更快的初始加载。
我知道这可能取决于数据库结构,因为 Firestore 是浅查询,所以我将数据结构化为尽可能浅,文档中没有子集合。
我只是比较普通的东西,所以后面没有 Algolia 或 Elastic,前面没有搜索或索引库。
【问题讨论】:
标签: javascript database firebase google-cloud-firestore