首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解Firestore定价

理解Firestore定价
EN

Stack Overflow用户
提问于 2018-02-17 03:00:10
回答 3查看 13.5K关注 0票数 10

在创建一个新的应用程序之前,我想确保我的定价模型是正确的。

例如,在一个电话簿应用程序中,我有一个名为userList的集合,它有一个用户列表,这些用户是单独的文档。

我的列表中有50k个用户,这意味着我的收藏中有50k个文档。

如果我要获得userList集合,它将读取所有50k文档。

FireStore允许50k文档读取。这意味着总共读取50k个文档还是每个文档读取50k个文档?

就像在我的电话簿应用程序的例子中,如果它是50k文档,总共读取,我将超过免费的限制,只要一次得到调用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-06 23:50:02

如果您实际上需要提取整个50k文档的集合,那么您可能会问的问题是如何正确地构造一个Firestore数据库。

您很可能需要使用查询WHERE子句,根据其中的一些条件过滤这些文档。让每个客户端设备在本地保存50k个文档,听起来像是数据库规划不善,而且可能存在安全风险。

Each returned document from your query counts as 1 read。如果您的查询没有匹配项,则将收取1读。如果有50k的火柴,就会有50k的读数充电。

例如,您可以检索登录用户的文档,并向1 read收取以下内容:

db.collection('userList').where('uid',‘=’=‘,clientUID)

注:自2018年10月起,每100 K阅读6美分(美元)后的第一个50k/天。

票数 15
EN

Stack Overflow用户

发布于 2018-02-17 04:57:32

免费配额是为您的整个项目。因此,您可以在整个项目下读取50.000个文档。

阅读50K用户配置文件确实可以一次性使用免费配额。

通常情况下,在使用NoSQL数据库时,应该尽量防止读取大量文档。

访问Firestore的客户端应用程序只应该读取它们将立即显示给用户的数据。你不可能在屏幕上安装50K的用户。

因此,更有可能的情况是,您正在对用户集合进行聚合。例如:

  • 计算用户数量
  • 计算命名为Frank的用户数。
  • 计算用户名的平均长度

与传统的关系数据库相比,NoSQL数据库的查询能力通常受到更大的限制,因为它们侧重于确保读取可伸缩性。当一些东西被写入数据库时,您经常会做额外的工作,如果作为交换条件,您可以在从数据库读取时获得更好的性能。

为了获得更好的性能,您需要将这些聚合值存储在数据库中,然后在编写用户配置文件时更新它们。因此,您将有一个"userCount",一个带有“每个惟一用户名的userCount”的文档,以及一个"averageUsernameLength“。

有关如何运行此类聚合查询的示例,请参阅:https://firebase.google.com/docs/firestore/solutions/aggregation。对于较低的写入卷,还可以考虑使用云函数更新计数器。

票数 13
EN

Stack Overflow用户

发布于 2019-10-21 06:41:42

不要一次打电话给所有的用户。您可以将查询限制为获得有限数量的用户。当用户滚动时,查询将获得更多的用户。而且,由于没有人会滚动到50,000用户,所以你可以摆脱一捆成本。这类似于在循环视图的情况下节省内存。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48837464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档