Ios Swift和Firebase-云firestore可扩展?
我对云Firestore非常陌生,所以对我来说构建数据库有点奇怪 我想保存我的训练。如果我在RealtimeDatabase上,我会这样做: 及 这样,我只能向特定用户获取一个节点。 但如果我对云Firestore很了解,就不可能查询子集合 所以我的问题是,你认为这个结构足够好,可以扩展吗 通过这样做:Ios Swift和Firebase-云firestore可扩展?,ios,swift,firebase,google-cloud-firestore,Ios,Swift,Firebase,Google Cloud Firestore,我对云Firestore非常陌生,所以对我来说构建数据库有点奇怪 我想保存我的训练。如果我在RealtimeDatabase上,我会这样做: 及 这样,我只能向特定用户获取一个节点。 但如果我对云Firestore很了解,就不可能查询子集合 所以我的问题是,你认为这个结构足够好,可以扩展吗 通过这样做: .whereField("userID", isEqualTo: "userIDString").whereField("date", isEqualTo: theDateIWant) ? 我
.whereField("userID", isEqualTo: "userIDString").whereField("date", isEqualTo: theDateIWant) ?
我觉得你的问题很好。正如Firestore承诺的那样,它的性能只与匹配的工作结果的数量有关,而与集合的大小无关
但是,通过查询collectionUsers.docuserIDString.CollectionWorkutResults.whereFielddate,isEqualTo:第一个数据结构中的DateWant,可以得到完全相同的结果。唯一不可能的是跨多个用户的工作结果进行查询,因为不可能跨多个集合进行查询。问题是我无法查询collectionuserIDString,因为它不是集合而是文档。。我不能先添加收藏,对吗?对不起,我不清楚。首先是集合名称,然后是文档,然后是集合,然后是文档,等等。我更新了答案,以显示一种可能的结构。请注意,集合名称通常是固定字符串,而文档名称通常是应用程序中的变量。感谢您的回答,非常有用!
UserWorkoutResult
|
+--UserID
| |
| +--WodResultGeneratedID
|
WorkoutResults
|
+--AutoID
| |
| +--date
| +--userID
| +--result
.whereField("userID", isEqualTo: "userIDString").whereField("date", isEqualTo: theDateIWant) ?