Swift & Firebase - Облачный пожарный склад масштабируемый? - PullRequest
0 голосов
/ 29 мая 2018

Я действительно новичок в Cloud Firestore, поэтому мне немного странно структурировать базу данных.

Я бы хотел сохранить свои тренировки.Если бы я был в RealtimeDatabase, я бы сделал что-то вроде этого:

WorkoutResults
 |
 +--AutoID
 |   |
 |   +--date
 |   +--userID
 |   +--result

И

UserWorkoutResult
 |
 +--UserID
 |   |
 |   +--WodResultGeneratedID
 |

Таким образом, я могу толькополучить один узел для конкретного пользователя.Но если я хорошо разбираюсь в Cloud Firestore, невозможно запросить подколлекции.

Итак, мой вопрос, считаете ли вы, что эта структура достаточно хороша для масштабирования?

WorkoutResults
 |
 +--AutoID
 |   |
 |   +--date
 |   +--userID
 |   +--result

Делая что-то вроде:

.whereField("userID", isEqualTo: "userIDString").whereField("date", isEqualTo: theDateIWant) ?

1 Ответ

0 голосов
/ 29 мая 2018

Ваш запрос выглядит нормально для меня.И, как обещает Firestore, его производительность зависит только от количества совпадающих WorkoutResults, а не от размера этой коллекции.

Но вы можете получить точно такой же результат, запросив collection("Users").doc("userIDString").collection("WorkoutResults").whereField("date", isEqualTo: theDateIWant) в ваших первых данныхсостав.Единственное, что здесь невозможно - это запросить у нескольких пользователей по номеру WorkoutResults, поскольку запросы по нескольким коллекциям невозможны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...