Firestore-在文档读取上省钱

时间:2019-08-21 20:03:11

标签: google-cloud-firestore

我从Firestore收集了5,000个艺术家,我希望将它们作为可搜索的下拉列表加载到我的应用程序中。每个用户在每次页面加载时执行此操作的成本很高。我每月有10,000个活跃用户。

我尝试了Algolia,但是该网站上的用户数量使其成为非常昂贵的选择。 Firestore可以使每个页面加载5000条记录。我的想法是将所有艺术家的姓名和ID存储在Firestore中的单个文档数组中,这样每页加载的成本仅为5,000,而每页加载成本仅为1。然后,在选择“歌手”时加载其他数据。

[ "Josse De Pauw", "Eva Van Der Gucht", "Filip Peeters" ]

我希望通过这种方法每天可以节省成千上万的文档读取次数。唯一增加的麻烦是在客户端执行操作。但是,这并不太麻烦。我希望对别人在做什么有所了解。我应该考虑在MySQL中存储一些数据吗?

1 个答案:

答案 0 :(得分:3)

如果您想使用更简单的方法,而不是数组,可以在单个文档中为所有艺术家使用键值对。每个文档的限制为1MB,因此即使有5,000个艺术家,您也应该在限制之内。

db.collection('artists').doc(_all).set({
  uniqueId: 'Artist Name',
  uniqueId2: 'Second Artist Name',
})

然后,一旦您检索文档,就可以使用Object.values()Object.entries()来提取名称和/或键

如果您想要一个更灵活的解决方案,则可以使用云功能将特定查询或文档集合的最新版本保存在Firebase实时数据库或其他数据库(如Redis)中。这是一篇文章,解释了后者的用法

https://thecloudfunction.com/blog/firebase-cloud-functions-and-redis/