#firebase #flutter #google-cloud-firestore
#firebase #flutter #google-облако-firestore
Вопрос:
У меня есть вопрос о системе ценообразования firebase для сложных запросов. Я знаю, что если я сделаю запрос с условием, результат, соответствующий условию, будет засчитан. Действительно ли это по-прежнему, если я добавлю условие сортировки?
Например
documentRef.where('something', isLessThan : condition)
.orderBy('something')
.limit(1).get()
если я запрашиваю и получаю только один документ, отсортированный по определенному условию, тогда это только 1 количество прочитанных? или он подсчитывает все совпадения условия «где», а затем еще одно количество ограничений?
Комментарии:
1. Я бы предположил, что это остановит запрос, как только он получит ваш единственный результат.
Ответ №1:
Вы платите только за количество документов, которые вы фактически получаете в своем приложении. A limit(1)
означает, что получен только 1 документ. Не имеет значения, насколько сложен ваш запрос.
Ответ №2:
Вы платите за количество извлекаемых документов, а не за количество документов, которые необходимо рассмотреть.
Причина этого в том, что Firestore выполняет все операции до этого с индексами, поэтому ему на самом деле не нужно просматривать ваши документы, чтобы упорядочить их (хотя something
поле должно быть в индексе).