Firestore, .onSnapshot отписываются, блокирует рендеринг страницы - PullRequest
0 голосов
/ 04 мая 2018

Я использую Firebase и Firestore в javascript, чтобы показать коллекцию в реальном времени (около 400 элементов), используя .onSnapshot:

collectionRef = db.collection('elements').doc(id).collection('subelements')
const unsubscribe = collectionRef.onSnapshot((q)=>{
     // update a elements variable
});

У меня нет проблем с извлечением списка и его обновлением, когда он изменяется, однако, когда я выполняю "unsubscribe ()", чтобы прекратить получать обновления, все мои страницы замирают примерно на 600 мс.

enter image description here

Сам вызов unsubscribe не блокирует выполнение (я полагаю, что он асинхронный), но рендеринг останавливается в какой-то момент после того, как я вызываю unsubscribe. Этого не происходит с небольшими коллекциями или если я не отписываюсь от них.

Я использую Vue и отписываюсь на "beforeDestroy"

UPDATE
Подобные проблемы с производительностью, когда взаимодействие страницы замирает при выполнении операции get () в том же списке. После удаления всей обработки обратного вызова и возврата пустого массива:

enter image description here

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