【问题标题】:Firestore group collection query using Flutter使用 Flutter 的 Firestore 组集合查询
【发布时间】:2020-02-04 18:44:01
【问题描述】:

我是 Firestore 数据库的新手。我正在使用使用颤振和 Firestore 的应用程序。我的应用程序的数据库结构是这样的:

Rooms --Room1-----Reservations.....reservation dates
                              .....reservation dates
        Room2-----Reservations.....reservation dates
        Room3
        Room4-----Reservations.....reservation dates
        Room5-----Reservations.....reservation dates
                              .....reservation dates
                              .....reservation dates

'Rooms' 是 1 级集合,包含所有房间详细信息。每个房间数据都包含“预订”集合以保存该房间的所有预订详细信息(入住和退房日期)。现在我想获取在特定日期范围内可用的房间列表。如何使用“组集合查询”来满足此要求?或者可以通过“组集合查询”来做同样的事情?

【问题讨论】:

  • 不要描述你的数据库的样子,而是添加它的截图。

标签: firebase flutter google-cloud-firestore


【解决方案1】:

晚了,但是,如果有人回到这个,现在在 firestore 中有一个叫做 collectionGroup 查询的东西,如果它们具有相同的名称,您可以在其中获取所有子集合。可以这样做

Firestore.instance.collectionGroup('Reservations').getDocuments()

这将为您提供所有房间的所有预订列表。收藏组查询请详细阅读here in the documentation

【讨论】:

    【解决方案2】:

    现在我想获取在特定日期范围内可用的房间列表。

    鉴于您存储了预订,如果当时没有预订,则可以使用房间。 Cloud Firestore 无法查询是否缺少数据,因此在您当前的模型中无法进行该查询。

    如果您将可用插槽存储在每个房间的 Reservations 集合中,您可以查询所有 Reservations 集合以获取所有房间的可用插槽。但请注意,此查询的结果是来自Reservations 的文档,而不是单个房间;如果您需要其中的信息,则需要分别加载每个房间。

    或者,您可以在每个 Room 文档中存储仍然可用的插槽列表。这样您就可以对所有房间进行常规查询以查看哪些房间仍然可用,然后在事务中对房间文档及其Reservations 集合执行更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-03
      • 2021-04-08
      • 2023-04-08
      • 2021-11-25
      • 2021-04-18
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多