i return the onAuthStateChanged unsubscribe() function to cleanup the useEffect but it doesnt unsubcribe. what may be causing this bug?
useEffect(() => {
const unsubscribe = onAuthStateChanged(auth, (user) => {
if(user){
setInterval(()=>{
setUser(user)
history.push('/home')
}, 1500)
}
else if(!user){
setInterval(()=>{
history.push('/login')
}, 1500)
}
})
return ()=> unsubscribe()
}, [])
There might be some problems with the code above, first setInterval is necessary I believe, second, you are returning a closure instead of the function itself, onAuthStateChange returns a function when the state changes so can you try this.
useEffect(() => {
const unsubscribe = onAuthStateChanged(auth, (user) => {
if(user){
setUser(user)
history.push('/home')
}
else {
history.push('/login')
}
});
return unsubscribe();
}, [])