我对非常陌生,所以对我来说构建数据库有点奇怪。
我想节省我的训练。如果我在RealtimeDatabase上,我会做这样的事情:
WorkoutResults \ +--AutoID WorkoutResults +--date result+-userID+-result
和
UserWorkoutResult \+--用户标识
这样,我只能向特定用户获取一个节点。但是,如果我对Cloud有很好的理解,就不可能查询子集合。
所以我的问题是,你认为这个结构足够大吗?
WorkoutResults \ +--AutoID WorkoutResults +--date result+-userID+-result
通过做这样的事情:
.whereField("userID", isEqualTo: "userIDString").whereField("date", isEqualTo: theDateIWant) ?发布于 2018-05-29 19:26:38
在我看来,你的问题很好。正如Firestore所承诺的那样,它的性能只与匹配的WorkoutResults数量有关,而与该集合的大小无关。
但是,通过在第一个数据结构中查询collection("Users").doc("userIDString").collection("WorkoutResults").whereField("date", isEqualTo: theDateIWant),您可以得到完全相同的结果。唯一不可能的事情是跨WorkoutResults查询多个用户,因为查询多个集合是不可能的。
https://stackoverflow.com/questions/50591467
复制相似问题