根据指南,在调用实际登录方法之前设置firebase auth state persistance:
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION)
.then(function() {
// Existing and future Auth states are now persisted in the current
// session only. Closing the window would clear any existing state even
// if a user forgets to sign out.
// ...
// New sign-in will be persisted with session persistence.
return firebase.auth().signInWithEmailAndPassword(email, password);
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
});
请参阅https://firebase.google.com/docs/auth/web/auth-state-persistence
然而,不应该是相反的方式吗?难道我不能首先确保登录成功,然后尝试设置持久性吗?
在建议的方法中,用户可能有10次错误的登录尝试,并且每次他都会请求firebase设置持久性,即使登录不成功。
例如,注册会是一样的。是否有一种实际方法可以将firebase auth持久性设置为SESSION或NONE默认值?
答案 0 :(得分:0)
在我的项目中,我在onAuthStateChanged侦听器中设置/重置了它。类似于以下内容:
firebase.auth.onAuthStateChanged(authUser => {
authUser
? localStorage.setItem('authUser', JSON.stringify(authUser))
: localStorage.removeItem('authUser')
});
您可以在here上详细了解它。