【问题标题】:Structuring Firestore data for efficient reads构建 Firestore 数据以实现高效读取
【发布时间】:2019-06-02 08:11:37
【问题描述】:

假设我有一个显示餐厅列表和要显示的 1000 家餐厅的应用程序。

我的第一印象是创建一个collection 餐厅,每个餐厅都是document 在这个collection 中。

上述方法的问题在于,对于每个用户,Cloud Firestore 会注册 1000 个reads

我的问题是,是否有更好的方法来存储餐厅以减少读取次数?

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    我的第一印象是创建一个餐厅集合,每个单独的餐厅都是该集合中的一个文档。

    是的,这是正确的做法。

    上述方法的问题在于,对于每个用户,firestore 会注册 1000 次读取

    仅当您一次读取所有文档时,您才会被收取 1000 次读取操作的费用。但这不是正确的方法,您需要限制您获得的数据。关于如何实现这一点,请查看有关order and limit data in Cloud Firestore 的官方文档。

    另一种最合适的方法是将数据加载到更小的块中。这种做法称为分页,可以通过 startAt()startAfter() 方法在 Cloud Firestore 中非常简单地使用。

    对于 Android,this 是一种推荐的方法,您可以通过将查询游标与 limit() 方法组合来对查询进行分页。我还建议您看看这个 video 以获得更好的理解。

    我的问题是,是否有更好的方法来存储餐厅以减少读取次数?

    为了回答您的问题,问题在于您如何存储数据,而在于您如何阅读它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2021-09-11
      • 1970-01-01
      相关资源
      最近更新 更多