首页 > 解决方案 > 如何分离firebase实时监听器?

问题描述

我使用的是 firebase 实时数据库版本 9,我使用这种方法来检索数据:

const refList= ref(
  db,
  `users/${uid}`
);
onValue(refList, (snapshot) => {
  let allData = snapshot.val() === null ? [] : snapshot.val()
});

所以这是实时通信,因此这个 ref 必须使用监听器。我检查了他们的文档,他们说在没有任何代码示例的情况下在 ref 上使用 off() 方法。

refList.off()

这会删除听众吗?

标签: javascriptfirebasefirebase-realtime-database

解决方案


onValue调用现在返回一个函数,该函数(在调用时)删除监听器。所以:

const unsubscribe = onValue(refList, (snapshot) => {
  let allData = snapshot.val() === null ? [] : snapshot.val()
});

然后后来:

unsubscribe();

推荐阅读