Javascript Firebase+;js(角度)离开窗口时更改联机状态
嘿,我正在尝试为我的web应用程序(angular 5+firebase)的每个用户建立属性stateOnline。 我在Android上看到的东西很少,我试图为自己实现一些东西:Javascript Firebase+;js(角度)离开窗口时更改联机状态,javascript,angular,firebase,firebase-realtime-database,Javascript,Angular,Firebase,Firebase Realtime Database,嘿,我正在尝试为我的web应用程序(angular 5+firebase)的每个用户建立属性stateOnline。 我在Android上看到的东西很少,我试图为自己实现一些东西: signInUser(email: string, password: string) { return new Promise( (resolve, reject) => { firebase.auth().signInWithEmailAndPassword(emai
signInUser(email: string, password: string) {
return new Promise(
(resolve, reject) => {
firebase.auth().signInWithEmailAndPassword(email, password).then(
() => {
this.setOnlineState(true);
resolve();
},
(error) => {
reject(error);
}
);
}
);
}
signOutUser() {
this.setOnlineState(false);
firebase.auth().signOut();
}
setOnlineState(state: boolean) {
const currentUser = firebase.auth().currentUser;
firebase.database().ref("users/" + currentUser.uid).update({ onlineState: state });
}
当用户单击调用signIn和signOut的按钮时工作正常,但是如果他没有单击signOut就离开页面,onlineState将保持为true!如何更正此问题?使用onbeforeunload事件: HTML:
在卸载前使用on事件: HTML:
我使用它有一个问题。当页面刷新时,它将注销用户!我使用它有一个问题。当页面刷新时,它将注销用户!
<div (window:beforeunload)="doSignOff()"></div>
doSignOff(){
this.setOnlineState(false);
//If you want to make sign out.
firebase.auth().signOut();
}