【问题标题】:firebase currentUser is null on page reloadfirebase currentUser 在页面重新加载时为空
【发布时间】:2020-08-08 00:19:43
【问题描述】:

我正在使用 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));
}

通常,这可行,但问题是,当我刷新页面时,firebase.auth().currentUser 为 null,请求将失败,因此不返回任何数据。

我已经尝试创建一个计算属性并在观察者中观察该属性。但不工作。 另外,我的 main.js 文件中有一个用户观察者,如下所示:

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

有人有想法吗?

谢谢!

【问题讨论】:

    标签: javascript firebase vue.js firebase-authentication vuex


    【解决方案1】:

    如果我正确理解您的问题,以下应该可以解决问题:

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

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 2023-03-30
      • 2019-10-31
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      相关资源
      最近更新 更多