Firebase 数据结构 SwiftUI

Firebase Data structure SwiftUI

我正在尝试找出为我的应用构建数据的最佳方式。我想要它,以便用户有一个旅行列表,然后可以转到费用的详细视图(燃料、酒店、食品、杂项)。

一个用户的出行次数会很多,这只是一个例子,详情页大概有20条。我觉得我想多了,但不确定让它读取列表中每次旅行的所有 20 项是否只是为每次旅行显示 2 项是个好主意。

不确定它是否会有所作为,但我正在使用 Xcode 12.4

最好先有旅行摘要,然后再收集详细信息的子集吗?

users:
    - UID: "randomly_generated"
    - firstName: "James"
    - email: "a@email.com"

trips:
    - startDate: "2/5/2022"
    - destination: "Orlando, FL"
    - userID: "Users UID"
    - details: []
        - food: "150"
        - hotel: "400"
        - fuel: "250"
        - misc: "75"

还是我应该把所有的都放在旅行中?

users:
    - UID: "randomly_generated"
    - firstName: "James"
    - email: "a@email.com"

trips:
    - startDate: "2/5/2022"
    - destination: "Orlando, FL"
    - userID: "Users UID"
    - food: "150"
    - hotel: "400"
    - fuel: "250"
    - misc: "75"

试试这个:

  • 用户:

    • 第一个UID
      • 名字:“詹姆斯”
      • 电子邮件:“a@email.com”
    • 第二个UID
      • 名字:“约翰”
      • 电子邮件:“b@email.com”
  • 车次:

    • FirstTripId
      • 开始日期:“2/5/2022”
      • 目的地:“佛罗里达州奥兰多”
      • uid: FirstUID
      • 食物:“150”
      • 酒店:“400”
      • 燃料:“250”
      • 杂项:“75”
    • SecondTripId
      • 开始日期:“3/5/2022”
      • 目的地:“津巴布韦哈拉雷”
      • uid: SecondUID
      • 食物:“21”
      • 酒店:“69”
      • 燃料:“420”
      • 杂项:“7”

/// 如果您希望减少查询或使用 rtdb

,请添加下一部分
  • userTrips
    • 第一个UID
      • FirstTripId
        • 开始日期:“2/5/2022”
      • NextTripIds
    • 第二个UID
      • SecondTripId
        • 开始日期:“3/5/2022”

///

当使用 Firestore 查询时,您可以在 trips 子项中进行直接复合查询并指定您想要的 UID,它将检索所有这些,此外,您可以限制您想要的行程数量 return

https://firebase.google.com/docs/firestore/query-data/queries

使用 RTDB,您不能同时进行多个筛选查询,因此您需要添加一个单独的 userTrips 子项以筛选出特定用户的所有行程

https://firebase.google.com/docs/database/ios/read-and-write