Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift和Firebase-云firestore可扩展?_Ios_Swift_Firebase_Google Cloud Firestore - Fatal编程技术网

Ios Swift和Firebase-云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) ? 我

我对云Firestore非常陌生,所以对我来说构建数据库有点奇怪

我想保存我的训练。如果我在RealtimeDatabase上,我会这样做:

这样,我只能向特定用户获取一个节点。 但如果我对云Firestore很了解,就不可能查询子集合

所以我的问题是,你认为这个结构足够好,可以扩展吗

通过这样做:

.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) ?