Firestore проверка, если имя пользователя существует, лучшая модель, чтобы не запрашивать всю базу данных? - PullRequest
0 голосов
/ 08 января 2019

Здравствуйте, я занимаюсь разработкой приложения для Android и использую Firebase's Firestore. Я беспокоюсь о создании имени пользователя для моего пользователя, когда он подписывается на мое приложение. Я знаю, что должен проверить, существует ли имя пользователя в моей базе данных, но что, если у вас есть 1 миллион пользователей или 5. Я не думаю, что результаты будут быстрыми при запросе всей базы данных. Является ли запрос всей базы данных единственным подходом? или, может быть, создание коллекции имен пользователей с 24 документами внутри, и, например, первый документ содержит коллекцию имен пользователей, начинающуюся с a, затем второй документ содержит коллекцию имен пользователей, начинающихся с b, и так далее. Нужна ваша помощь. Спасибо.

1 Ответ

0 голосов
/ 08 января 2019

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

Таким образом, производительность запросов, которые вы получаете за поиск 1 документа в коллекции из 5, 24 или 1 миллиона документов, будет точно такой же.

В Cloud Firestore вы можете использовать запросы для получения отдельных конкретные документы или получить все документы в коллекции которые соответствуют параметрам вашего запроса. Ваши запросы могут включать несколько цепочки фильтров и совмещают фильтрацию и сортировку. Они также индексируется по умолчанию , поэтому производительность запросов пропорциональна размеру вашего набора результатов, а не набора данных .

Таким образом, ответ таков: следует запросить уже существующую коллекцию документов, а не создать меньшую коллекцию (и) с подмножеством документов для повышения эффективности запросов.

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