# #firebase #google-cloud-firestore
Вопрос:
У меня есть документ, который я хочу прослушать для нескольких различных компонентов, но чище просто зарегистрировать прослушиватель для каждого компонента, а не регистрировать «главный» объект прослушивателя и передавать его по кругу. Будет ли с меня взиматься плата за каждого слушателя или так же, как если бы у меня был только один слушатель? Не уверен, есть ли одно соединение Firebase, которое отправляет все обратные вызовы, или если это открывает несколько соединений websocket или что-то еще.
Комментарии:
1. Насколько я понимаю, Firestore будет взимать плату за каждое чтение независимо от того, из одного и того же приложения, поэтому с вас будет взиматься плата за каждое ваше чтение. Я считаю, что они даже рекомендуют вытягивать как можно больше, а затем выполнять как можно больше на стороне клиента. Они даже взимают плату за чтение, необходимое в правилах безопасности, поэтому, если вы экономны, вам также следует обратить на это внимание. Посмотрите видео Firestore на YouTube (официальное), я не могу вспомнить, какое именно, но у них есть видео, в котором рассказывается о том, как взимается плата за Firestore.
2. В качестве примера я храню журналы своих клиентов в Firestore, но загружаю все журналы сразу в виде одного запроса, а также извлекаю их все одним запросом, а затем выполняю фильтрацию на стороне клиента и т. Д.
Ответ №1:
С вас взимается плата за чтение (или проверки), которые происходят на сервере.
Если у вас активны два слушателя, не более одного из них потребуется получить данные с сервера. Второй слушатель сможет прочитать его из кэша.
Если вы используете get()
вызовы вместо прослушивателей, результат будет другим. Поскольку при использовании активного прослушивателя нет get()
, документ может быть изменен в промежутках между вызовами, и каждый вызов должен будет проверять на сервере наличие обновлений данных, что приведет к платному чтению.