React Native – Firebase auth持久性不起作用

前端之家收集整理的这篇文章主要介绍了React Native – Firebase auth持久性不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Firebase身份验证不会持续登录用户,每次刷新或重新打开应用程序时我都必须重新登录.

我已经尝试将持久性设置为本地,并且回调确实验证了它的设置,但持久性仍然无效

为了设置持久性我正在使用…

  1. //set auth persistence
  2. firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)
  3. .then(function() {
  4. console.log("successfully set the persistence");
  5.  
  6. })
  7. .catch(function(error){
  8. console.log("Failed to ser persistence: " + error.message)
  9. });

.
.
.
登录时我正在使用此代码

  1. firebase.auth().signInWithEmailAndPassword(email,password)
  2. .then((user) =>{
  3. this.checkAccountStatus(user.uid,user.email);
  4. })
  5. .catch(function(error) {
  6. // Handle Errors here.
  7.  
  8. var errorCode = error.code;
  9. var errorMessage = error.message;
  10.  
  11. console.log(errorMessage)
  12. // ...
  13. });

这是我用来检查登录状态的代码……

  1. if (firebase.auth().currentUser) {
  2. const currentUser = firebase.auth().currentUser;
  3. console.log("Signed in username" + currentUser.displayName);
  4.  
  5. this.props.navigation.navigate('AppTab');
  6. }else{
  7. console.log("no user signed in");
  8. this.props.navigation.navigate('AuthTab');
  9. }

如果有什么我做得不对

您不需要设置持久性. Firebase默认为您处理.您只需要调用函数来检查用户是否已记录:
  1. firebase.auth().onAuthStateChanged((user) => {
  2. if (user) {
  3. console.log('user is logged');
  4. }
  5. }

仅当用户已注销或清除应用数据时,才会触发此操作.

您可以在官方文档中找到更多详细信息:https://firebase.google.com/docs/auth/web/manage-users

希望能帮助到你.

猜你在找的React相关文章