Мне было интересно, как лучше всего хранить данные в пожарном хранилище на пользовательском и глобальном уровнях, чтобы вся информация была легко извлекаема и могла быть рассчитана.
Например, допустим, вы создаете приложение для гоночного автомобиля, в котором среднее время прохождения трассы записывается для конкретного пользователя, но вы также хотите использовать среднее время этого пользователя для сравнения со средним глобальным значением этого пользователя.location.
Установка, о которой я думаю, выглядит следующим образом:
Глобальные данные Firestore
{
Location: France,
globalAverageTime: 6 minutes,
numberOfParticipants: 2
}
Данные Firestore пользователя
[
{
username: "firstuser",
location: France
time: 8 minutes
},
{
username: "seconduser",
location: France
time: 4 minutes
}
]
Итак, каков наилучший способ размещения всех данных такого типа?Таким образом, каждый раз, когда пользователь обновляет свое личное среднее время на трассе, вычисляется новое глобальное среднее значение на основе местоположения этого пользователя и нового времени.Так, например, в приведенном выше примере во Франции есть два «числа участников»: один с 8 минутами, а другой с 4 минутами, поэтому среднее время составляет 6 минут на трассе для этого региона.
Для запуска такой системы лучше всего было бы использовать облачные функции, которые запускают вычисления после каждого обновления пользовательских данных, а затем обновляют глобальные данные?Кроме того, это лучший способ настройки системы, чтобы каждый пользователь мог впоследствии сравнить себя со средним значением?
Дайте мне знать о любых улучшениях, которые можно внести, или о том, как я должен изменить способ настройки данных.в пожарном магазине.