firebase currentUser равен нулю при перезагрузке страницы - PullRequest
0 голосов
/ 24 апреля 2020

Я использую firebase для аутентификации. Каждый раз перед тем, как выполнить запрос к бэкэнду, я запрашиваю idToken.

service.interceptors.request.use(async request => {
  const token = await firebase.auth().currentUser.getIdToken();
  if (!token && request.url !== '/signIn' && request.url !== '/register') {
    toast.error('Not authenticated');
    return;
  }
  request.headers.Authorization = 'Bearer ' + token;
  return request;
});

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

mounted() {
   plantService.getPlants().then(data => (this.suspicionList = data));
}

Обычно это работает, но проблема в том, что, когда я обновляю sh страницу, firebase.auth (). CurrentUser равен нулю, и запрос не будет выполнен, поэтому не будет возвращен любые данные.

Я уже пытался создать вычисляемое свойство и наблюдать это в наблюдателе. Но не работает. Кроме того, у меня есть основной наблюдатель для пользователя в моем основном файле. js, например:

firebase.auth().onAuthStateChanged(user => {
  store.dispatch('FETCH_USER', user);
});

У кого-нибудь есть идеи?

Спасибо!

1 Ответ

1 голос
/ 24 апреля 2020

Если я правильно понимаю вашу проблему, следующее должно помочь:

mounted() {
    firebase.auth().onAuthStateChanged(user => {
        if (user) {
           plantService.getPlants().then(data => (this.suspicionList = data));
        }
    });
}
...