部署到firebase后,在signInWithRedirect()之后找不到页面



在本地服务时,登录和重定向都可以工作,但是当我部署到firebase托管时,登录后的重定向停止工作,而不是给我一个错误404,无论我尝试导航到什么路由。如果我清除地址栏中的url,只输入基本url,没问题,我登录了

auth.service.ts的登录功能

login() {
let returnUrl = this.route.snapshot.queryParamMap.get('returnUrl') || '/home';
localStorage.setItem('returnUrl', returnUrl);

this.afAuth.signInWithRedirect(new firebase.auth.GoogleAuthProvider());
}

Auth警卫:

return new Promise((resolve, reject) => {
this.auth.user$.subscribe(user => {
if (user) {
resolve(true);
}

else {          
this.router.navigate(['/login'], );
resolve(false);}
});
})

点击login.component.ts时发生的登录功能:

login() {
this.auth.login()
}

如果你有Angular SPA应用,那么检查你的firebase中的重写数组。json配置。在这种情况下,当托管在firebase上时,需要将所有调用重定向到index.html,如下所示:

"hosting": {
// ...
"rewrites": [ {
"source": "**",
"destination": "/index.html"
} ]
}

最新更新