【问题标题】:In Firestore does an ordered query induce an additional read cost?在 Firestore 中,有序查询是否会产生额外的读取成本?
【发布时间】:2021-08-02 06:52:49
【问题描述】:

我有 1000 个文档的集合 foo,其中每个文档都有一个字段 bar,一个数字。如果我查询db.collection('foo').orderBy("bar", "desc").limit(5),我将收取多少阅读费用?

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    在查询中使用orderBy 语句不会产生额外费用,因为可以根据索引确定结果的顺序。因此,Firestore 不必读取集合中的所有文档来确定您的场景中 bar 的值,它只需要读取 bar 的索引。

    事实上,Firestore 从不 需要读取所有文档来满足查询。它的整体性能保证是基于能够通过仅从索引中读取切片来执行它允许的任何查询。


    该查询将向您收取至少 1 次和最多 5 次读取的费用。具体费用取决于您实现读取操作的方式以及本地缓存的状态。

    注意事项:

    • 如果客户端未连接到服务器,您将不会为任何文档读取付费。
    • 如果文档已在发出调用的客户端的缓存中,则您可能无需为从服务器读取该文档付费。
    • 如果没有从服务器返回用于查询的文档,您仍需要为查询本身支付 1 个文档读取费用。如果服务器返回任何文档,则查询不收取额外费用。

    【讨论】:

      【解决方案2】:

      5 次读取。由于limit(5),无论您拥有多少文件,您都需要为您请求的内容付费,在这种情况下为 5。

      阅读更多:Understand Cloud Firestore Billing

      【讨论】:

        猜你喜欢
        • 2020-12-19
        • 2021-01-31
        • 2020-01-19
        • 2021-11-07
        • 1970-01-01
        • 2019-05-12
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        相关资源
        最近更新 更多