Моделирование таблицы лидеров игры с помощью Firestore – ограничения с монотонно увеличивающимся полем?

1
7

У меня есть модель видеоигры, в которой есть коллекция User в Firestore, где каждый документ имеет поле score. Я хочу сделать запрос, чтобы отсортировать всех пользователей по их score, от самого высокого балла к самому низкому. Для этого мне нужно проиндексировать поле score, а затем я могу запросить всех пользователей, отсортированных по их score.

Проблема в том, что в документации говорится, что следует избегать создания документов с монотонно увеличивающимся полем, например временной меткой, с очень высокой скоростью. Применимо ли это ограничение к моему варианту использования? Как и временные метки, поля с очками всегда увеличиваются в разных документах. Но в отличие от временных меток поля очков увеличиваются с разной скоростью.

Например, у одного пользователя счет может вырасти с 1 до 2 и до 3 за одну минуту, в то время как счет другого пользователя может вырасти с 4 до 5 и до 6 за тот же период времени. Некоторые пользователи играют в игру часто, поэтому у них могут быть гораздо большие очки, которые обновляются чаще, чем у пользователей, которые играют реже.

Применяется ли ограничение на написание/обновление документов с монотонно увеличивающимися полями к моему варианту использования?

Потап
Вопрос задан7 января 2024 г.

1 Ответ

2
Филимон
Ответ получен13 сентября 2024 г.

Ваш ответ

Загрузить файл.