如何分离 firebase 实时监听器?

How to detach firebase Realtime listeners?

我用的是firebase实时数据库9版本,我用这个方法取回数据:

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

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

refList.off()

这会删除侦听器吗?

onValue 现在调用 returns 一个函数(在调用时)删除侦听器。所以:

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

然后:

unsubscribe();