我在javascript中使用Firebase和Firestore使用.onSnapshot实时显示集合(大约400个元素):
collectionRef = db.collection('elements').doc(id).collection('subelements')
const unsubscribe = collectionRef.onSnapshot((q)=>{
// update a elements variable
});
我在检索列表时没有问题并在更改时更新它,但是,当我执行" unsubscribe()"停止接收更新所有我的页面冻结大约600毫秒。
取消订阅本身的调用并不阻止执行(我猜这是异步的)但是在我调用取消订阅后,渲染会在某些时候冻结。对于较小的收藏品或者我没有取消订阅,这种情况不会发生。
我正在使用Vue并取消订阅" beforeDestroy"
更新
类似的性能问题,在同一列表上执行get()操作时会发生页面交互冻结。删除回调上的所有处理并返回一个空数组后: