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
我正在尝试找出为我的应用构建数据的最佳方式。我想要它,以便用户有一个旅行列表,然后可以转到费用的详细视图(燃料、酒店、食品、杂项)。
一个用户的出行次数会很多,这只是一个例子,详情页大概有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”
- 第一个UID
车次:
- FirstTripId
- 开始日期:“2/5/2022”
- 目的地:“佛罗里达州奥兰多”
- uid: FirstUID
- 食物:“150”
- 酒店:“400”
- 燃料:“250”
- 杂项:“75”
- SecondTripId
- 开始日期:“3/5/2022”
- 目的地:“津巴布韦哈拉雷”
- uid: SecondUID
- 食物:“21”
- 酒店:“69”
- 燃料:“420”
- 杂项:“7”
- FirstTripId
/// 如果您希望减少查询或使用 rtdb
,请添加下一部分- userTrips
- 第一个UID
- FirstTripId
- 开始日期:“2/5/2022”
- NextTripIds
- FirstTripId
- 第二个UID
- SecondTripId
- 开始日期:“3/5/2022”
- SecondTripId
- 第一个UID
///
当使用 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