页面重新加载时 firebase currentUser 为空
2020-04-24
1262
我使用 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 为空,请求将失败,因此不会返回任何数据。
我已经尝试创建一个计算属性并在观察器中观察它。但没有用。 此外,我的 main.js 文件中有一个用户观察器,如下所示:
firebase.auth().onAuthStateChanged(user => {
store.dispatch('FETCH_USER', user);
});
有人有想法吗?
谢谢!
1个回答
如果我正确理解了您的问题,则以下内容应该可以解决问题:
mounted() {
firebase.auth().onAuthStateChanged(user => {
if (user) {
plantService.getPlants().then(data => (this.suspicionList = data));
}
});
}
Renaud Tarnec
2020-04-24