我正在使用firebase.onDisconnect()方法删除用户的状态,但是在他们注销/杀死连接后并没有触发。在componentDidMount中,我调用了侦听器,它将用户的ID写入状态节点。我已经设置了onDisconnect,它应该删除该节点。但是它不起作用。
注销/关闭窗口后,在Firebase中,状态节点仍保留,并且userID显示为true。它应该已经被删除。
我已经查看了其他代码,并且似乎已正确设置...我看不到我所缺少的内容。
此状态:
state ={
presenceRef: firebase.database().ref('presence')
}
componentDidMount() {
if(this.state.user) {
this.addListeners(this.state.user.uid);
}
}
addListeners = currentUserUID => {
if(snap.val() ===true) {
const ref = this.state.presenceRef.child(currentUserUID);
ref.set(true);
ref.onDisconnect().remove(err => {
if(err !== null) {
console.log(err);
}
})
}
})
}
我注销,控制台中未记录任何错误,但是该节点从未从存在状态中删除