在以前的版本中,我会执行以下操作:
自 Firebase 9.0.0 以后,我注意到
// Declaring db reference
let ref = firebase.database().ref('features')
// Creating the listener
let listener = ref.on('value', snapshot => {
if(snapshot.val()){
// Reading data
}
}
// Unsubscribing
ref.off('value', listener)
自 Firebase 9.0.0 以后,我注意到
onValue()
函数返回了一个取消订阅的回调函数。/** A callback that can invoked to remove a listener. */
export declare type Unsubscribe = () => void;
因此,我的当前方法:
// Declaring db reference
let featuresRef = ref(db, 'features')
// Creating the listener
let unsubscribe = onValue(featuresRef, snapshot => {
if(snapshot.val()){
// Reading data
}
})
// Unsubscribing
unsubscribe()
从函数定义上看,off()
函数仍然存在,并且根据文档:
通过在 Firebase 数据库引用上调用 off() 方法来移除回调。
我需要使用返回的取消订阅回调函数还是 off()
函数来删除监听器?
off
都可以用于移除监听器。你对它们中的任何一个有问题吗? - Frank van Puffelen