Firebase身份验证不会持续登录用户,每次刷新或重新打开应用程序时我都必须重新登录.
我已经尝试将持久性设置为本地,并且回调确实验证了它的设置,但持久性仍然无效
为了设置持久性我正在使用…
//set auth persistence firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL) .then(function() { console.log("successfully set the persistence"); }) .catch(function(error){ console.log("Failed to ser persistence: " + error.message) });
firebase.auth().signInWithEmailAndPassword(email,password) .then((user) =>{ this.checkAccountStatus(user.uid,user.email); }) .catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; console.log(errorMessage) // ... });
if (firebase.auth().currentUser) { const currentUser = firebase.auth().currentUser; console.log("Signed in username" + currentUser.displayName); this.props.navigation.navigate('AppTab'); }else{ console.log("no user signed in"); this.props.navigation.navigate('AuthTab'); }
如果有什么我做得不对
您不需要设置持久性. Firebase默认为您处理.您只需要调用此函数来检查用户是否已记录:
firebase.auth().onAuthStateChanged((user) => { if (user) { console.log('user is logged'); } }
仅当用户已注销或清除应用数据时,才会触发此操作.
您可以在官方文档中找到更多详细信息:https://firebase.google.com/docs/auth/web/manage-users
希望能帮助到你.
原文地址:https://www.jb51.cc/react/300800.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。