如何分离 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();
我用的是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();