Я использую Firebase и Firestore в javascript, чтобы показать коллекцию в реальном времени (около 400 элементов), используя .onSnapshot:
collectionRef = db.collection('elements').doc(id).collection('subelements')
const unsubscribe = collectionRef.onSnapshot((q)=>{
// update a elements variable
});
У меня нет проблем с извлечением списка и его обновлением, когда он изменяется, однако, когда я выполняю "unsubscribe ()", чтобы прекратить получать обновления, все мои страницы замирают примерно на 600 мс.
Сам вызов unsubscribe не блокирует выполнение (я полагаю, что он асинхронный), но рендеринг останавливается в какой-то момент после того, как я вызываю unsubscribe. Этого не происходит с небольшими коллекциями или если я не отписываюсь от них.
Я использую Vue и отписываюсь на "beforeDestroy"
UPDATE
Подобные проблемы с производительностью, когда взаимодействие страницы замирает при выполнении операции get () в том же списке. После удаления всей обработки обратного вызова и возврата пустого массива: