Firebase Стоит ли подключать и отключать SnapshotListener много раз, если в течение 30 минут не было изменений? - PullRequest
0 голосов
/ 15 января 2020

Я хочу иметь возможность остановить прослушиватель моментальных снимков, когда мне не нужно прослушивать изменения, чтобы позже я мог получить все обновления сразу. Можно ли временно остановить слушатель снимка? Я думаю, что вы должны удалить его явно и заново инициализировать все в соответствии с do c. Таким образом, я могу явно вызвать remove и повторно инициализировать прослушиватель снимка, чтобы получить изменения, но есть ли штраф за это? Я знаю, что чтение кэшированных значений в течение 30 минут ничего не стоит, поэтому означает ли это, что присоединение и отсоединение прослушивателя снимков ничего не будет стоить?

Если в документе нет изменений, и я прикрепляю снимок Слушатель снова и снова говорит 50 раз за 30 минут, это будет стоить мне чего-нибудь?

1 Ответ

1 голос
/ 15 января 2020

Firebase Стоит ли много раз подключать и отключать SnapshotListener, если в течение 30 минут не было никаких изменений?

Нет, слушатель будет не срабатывать, если есть нет изменений в вашей базе данных. Однако, если вы отключите прослушиватель и подключите его снова, будет стоить один прочитанный документ , даже если запрос не даст результатов. Согласно комментарию Фрэнка ван Пуффелена, вот причина, по которой он работает таким образом:

Сервер должен выполнить запрос от вашего имени, поэтому, если на сервере не читаются отдельные документы, он взимает плату за запрос (фактически чтение индекса), чтобы предотвратить постоянное отсоединение / повторное присоединение (которое использует ресурсы сервера).

И это действительно имеет смысл.

I думаю, что вы должны удалить его явно и заново инициализировать все в соответствии с do c.

Да, это правильно. Когда прослушиватель больше не нужен, просто отсоедините его.

Таким образом, я могу явно вызвать remove и повторно инициализировать прослушиватель снимка, чтобы получить изменения, но есть ли штраф за это?

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

Я знаю, что чтение кэшированных значений в течение 30 минут ничего не стоит, поэтому это означает, что ничего не будет стоить присоединить и отсоединить прослушиватель снимков?

Если документ не содержит изменений, и я присоединяю прослушиватель снимков снова и снова, скажем, 50 раз за 30 минут, это будет мне стоить?

Если вы отключите прослушиватель и подключите новый 50 раз, а в базе данных не будет изменений, это будет стоить вам 50 чтений документа.

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