Как вы можете сохранить зарегистрированного пользователя в firebase?

#javascript #reactjs #firebase #firebase-authentication

# #javascript #reactjs #firebase #firebase-аутентификация

Вопрос:

Большое спасибо за чтение вопроса этого новичка.

Итак, есть приложение ReactJS, которое использует firebase для своей аутентификации.

Каждый раз, когда страница обновляется, пользователь исчезает навсегда, пока вы не войдете в систему с перенаправленной страницы входа.

Что было сделано до сих пор?

Что ж, после тщательного изучения всех возможных ответов Stackoverflows, дающих безупречные ответы, было выполнено следующее:

  1. Реализована функция onAuthStateChanged(), как показано ниже:
   firebase.auth().onAuthStateChanged((user) => {
            if (user) {
                console.log('user is logged in');
            } else {
                console.log('user is logged out now')
            }
        }); 

  1. Установите постоянство, которое, по-видимому, является тихим рабочим, следующим образом:
  firebase.auth().setPersistence(firebase.auth.Auth.Persistence.NONE)
        .then(function () {
          console.log("successfully set the persistence");
    
        })
        .catch(function (error) {
          console.log("failed to ser persistence: "   error.message)
        }); 

Каждая перезагрузка страницы выводит пользователя из системы просто так.
Пропал!.
Ничего. Даже следов его пыли!

Чтобы лучше понять этот вредный код, я могу предоставить вам следующие скриншоты сообщений консоли.

Вы получаете это при входе в систему

введите описание изображения здесь

И следующее, когда страница обновляется.

Как вы думаете, почему эта ошибка появляется даже после применения вышеуказанного?

Еще раз спасибо!

Update1: убрал setPersistence. И оказывается, что пользователь входит в систему даже после перезагрузки страницы для входа в систему.

Обновление 2: пользователь фактически удаляется при обновлении страницы. Теперь это то, что нам нужно решить здесь. Что вы, ребята, думаете?

введите описание изображения здесь

Ответ №1:

Firebase Auth SDK включает сохранение по умолчанию. Если вам нужно такое поведение по умолчанию, не вызывайте firebase.auth().setPersistence() вообще. Просто используйте onAuthStateChanged , чтобы узнать, когда сохраненный пользовательский объект будет доступен первым.

Комментарии:

1. Привет, Даг!, спасибо за ваш ответ. Я попробую это и посмотрю, как это получится

2. Итак, я записываю эту строку. По-прежнему преобладает вышеупомянутая ошибка. Теперь при обновлении отображается только сообщение «пользователь вошел в систему».

3. Какая ошибка? Здесь вы не показываете ошибок.

4. Ошибка. Не ошибка. Просто, что ничего не улучшилось, выполнив вышеуказанное.

5. Если у вас есть другой вопрос, пожалуйста, опубликуйте его отдельно вместе с соответствующим кодом, который работает не так, как вы ожидаете. В этом вопросе должно быть достаточно информации, чтобы любой мог повторить поведение.