Ber*_*adt 3 firebase firebase-authentication angularfire2 angular
我正在构建一个基于以下教程的Angular 4 + FireBase(4.0.0.rc0)应用程序:https://coursetro.com/posts/code/32/Create-a-Full-Angular-Authentication-System-with -Firebase
本教程基于较旧版本的FireBase.我几乎可以将所有内容转换为最新版本.我正在努力改变这个canActivate功能.它会引发Observable.from(this.afAuth)以下错误:
[ts]
Argument of type 'AngularFireAuth' is not assignable to parameter of type 'ArrayLike<{}>'.
Property 'length' is missing in type 'AngularFireAuth'.
(property) AuthGuard.afAuth: AngularFireAuth
Run Code Online (Sandbox Code Playgroud)
export class AuthGuard implements CanActivate {
constructor(private afAuth: AngularFireAuth, private router: Router) { }
canActivate(): Observable<boolean> {
return Observable.from(this.afAuth)
.take(1)
.map(state => !!state)
.do(authenticated => {
if
(!authenticated) this.router.navigate(['/login']);
})
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
谢谢!
它应该是afAuth.authState,它已经Observable<firebase.User>是你不需要的Observable.from
constructor(private afAuth: AngularFireAuth, private router: Router) { }
canActivate(): Observable<boolean> {
return this.afAuth.authState
.take(1)
.map(authState => !!authState)
.do(authenticated => {
if (!authenticated) {
this.router.navigate(['/login']);
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |