Текущий проект, над которым я работаю, использует Firebase 4.1.3 и RN 0.42.3

изация 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');
      }

если что-нибудь я не делаю правильно

 Nouman Tahir10 сент. 2017 г., 20:50
Я использую простой пакет "firebase" .... "firebase": "^ 4.3.0",
 bennygenel10 сент. 2017 г., 19:11
Можете ли вы добавить, какую библиотеку вы используете для Firebase, пожалуйста?

Ответы на вопрос(1)

Решение Вопроса

вас по умолчанию. Вам просто нужно вызвать эту функцию, чтобы проверить, вошел ли пользователь в систему:

firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        console.log('user is logged');
      }
}

Это не будет срабатывать, только если пользователь вышел из системы или очистил данные приложения.

Вы можете найти более подробную информацию в официальных документах:https://firebase.google.com/docs/auth/web/manage-users

Надеюсь, это поможет.

 soutot11 сент. 2017 г., 17:23
Я всегда использовал код, который я указал в свой componentWillMount, на моем экране входа в систему, и у меня никогда не было проблем. Даже если пользователь закрывает приложение, при повторном открытии он проверяет, зарегистрирован ли пользователь и переходит на домашний экран. Не могли бы вы поделиться, где вы это добавили?
 soutot10 сент. 2017 г., 21:07
Вы должны заменить свой метод на тот, который я предоставил. Согласно документам, это правильный способ проверить, вошел ли пользователь в систему или нет после закрытия приложения. Дайте мне знать, если сработало.
 Nouman Tahir11 сент. 2017 г., 07:23
только что попробовал, это не сработало, и я не ожидал, что это тоже, потому что согласно документации, если пользователь уже подписан, это .currentUser () - это правильный способ узнать, вошел ли в систему статус или нет .... см. заголовок «Получить текущего зарегистрированного пользователя» вfirebase.google.com/docs/auth/web/manage-users
 soutot15 сент. 2017 г., 17:08
Текущий проект, над которым я работаю, использует Firebase 4.1.3 и RN 0.42.3
 Nouman Tahir10 сент. 2017 г., 20:55
Я использую этот метод вместо ... firebase.auth (). CurrentUser; ... он не работает, когда приложение обновляется с помощью Cmd + R или перезапускается из самого симулятора

Ваш ответ на вопрос