【问题标题】:Decrease firestore reads减少 Firestore 读取
【发布时间】:2021-04-04 15:35:30
【问题描述】:

我在我的 android 应用程序中使用 firebase。所有数据都存储在 Firestore 文档中。主页上会显示各种汽车公司的名称,如果用户点击一个公司,则会显示型号名称,最后显示有关该汽车的信息。该应用程序仍在开发中,每天的文档阅读量约为 250 次。我无法弄清楚为什么会这样。在实时数据库中拥有公司及其型号名称以及在 Firestore 文档中有关该特定汽车的信息是一个好主意吗?例如。 (请忽略语法)db.collections("Ferrari").document("458").getResults()

这种查询算作 1 个文档读取吗?我可以通过这种方式减少阅读的文档吗?

【问题讨论】:

    标签: android firebase firebase-realtime-database google-cloud-platform google-cloud-firestore


    【解决方案1】:

    对于文档

    阅读费用有一些细微差别,您应该牢记。这 以下部分详细解释了这些细微差别。

    收听查询结果

    Cloud Firestore 允许您收听查询结果并获取 查询结果变化时实时更新。

    当您收听查询结果时,您需要为阅读付费 每次添加或更新结果集中的文档时。你是 当从结果集中删除文档时,还收取读取费用 因为文件变了。 (相反,当一个文档是 已删除,您无需为阅读付费。)

    此外,如果监听器断开连接超过 30 分钟(对于 例如,如果用户离线),您将被收取阅读费用 如果您发出了全新的查询。

    管理大型结果集

    Cloud Firestore 具有多项功能,可帮助您管理以下查询: 返回大量结果:

    游标,可让您恢复长时间运行的查询。页面令牌, 这可以帮助您对查询结果进行分页。限制,它指定如何 许多结果要检索。偏移量,允许您跳过固定的 文件数。

    使用游标、页面标记和 限制。其实这些功能可以帮你省钱 只有您真正需要的文件。

    但是,当您发送包含偏移量的查询时,您将 为每个跳过的文档收取阅读费用。例如,如果您的查询 使用偏移量 10,查询返回 1 个文档,您是 11次读取收费。由于这个额外的费用,你应该使用 尽可能使用游标而不是偏移量。

    文档读取以外的查询

    对于文档读取以外的查询,例如对列表的请求 集合 ID,您需要为读取的一份文档付费。如果取 完整的结果集需要多个请求(例如, 如果您使用的是分页),则每次请求都会向您收费一次。

    如果我们提出您的问题。

    这个例子展示了如何使用get()获取一个单个文档的内容

    db.collections("Ferrari").document("458").get() // One Document One Read :)
    

    注意:对于您执行的每个查询,即使查询未返回任何结果,也需要读取一个文档的最低费用。

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 2021-06-08
      • 2021-05-22
      • 2019-02-01
      • 2020-03-31
      • 2019-12-29
      • 1970-01-01
      • 2019-10-22
      • 2020-06-07
      相关资源
      最近更新 更多