flutter firebase с streambuilder: будет ли плата за сервер увеличиваться экспоненциально?

#firebase #flutter #stream #stream-builder

# #firebase #flutter #поток #stream-builder

Вопрос:

Я новичок в приложении flutter-fire [: И здесь у меня есть простая проблема, но ее нелегко решить.

Когда мы используем Streambuilder в приложении, мы обычно видим потрясающую синхронизацию между пользовательским интерфейсом и базой данных вовремя. Я действительно испытываю радость, когда использую Streambuilder. Казалось, что с Streambuilder будут происходить только прекрасные вещи.

Тем временем прозвучал подозрительный вопрос. Когда мы вводим print (‘привет, мир!’); в Streambuilder мы видим, что RUN console выводит фразу каждые миллисекунды, в противном случае она была бы напечатана только один раз. Это означает, что использование оперативной памяти чрезвычайно увеличивается. Когда дело доходит до синхронизации БД, мы можем легко догадаться, что использование Streambuilder приводит к огромному использованию платы за связь между клиентом и сервером, которая в моем случае является платой Firebase.

Итак, вот мой вопрос. Могу ли я свободно использовать Streambuilder, когда поток подключен к БД (в моем случае firebase)? Я беспокоюсь о плате за связь между пользовательским интерфейсом и firebase, потому что streambuilder, похоже, буквально использует огромное количество энергии каждые миллисекунды (IMO дополнительно, плата за сервер) в отличие от обычных сборщиков. Особенно, когда длина сбора данных настолько велика, что чтение коллекции один раз может стоить много энергии, плата будет увеличиваться намного больше и дальше, потому что streambuilder должен проверять тысячи документов firebase только для определения одной строки условия.

Я предполагаю, что многие методы flutter, подключенные к серверной части, используют Streambuilder, поэтому кто-то может четко определить, сколько мы будем платить за Google, когда мы используем Streambuilder. Я знаю, что это довольно неоднозначный вопрос, но надеюсь, вы понимаете. [:

Ответ №1:

Содержимое, поступающее из базы данных Firebase, будь то FutureBuilder или StreamBuilder, оплачивает только значение запроса, которое было обработано один раз, и после этого, в случае, если одно и то же значение ответа одинаково для одного и того же запроса, оно не оплачивает эту стоимость и отображает сохраненный список, хранящийся в кэше на сервере.снова экран клиента. .

И убедитесь, что он не вызывается для чего-то вроде setState. если да, то, конечно, StreamBuilder вызывается снова.