angular - Tipul 'Observable<User | null | undefined>' nu poate fi atribuit tipului 'Observable<User>'
Încerc să creez un Google SignIn cu Firestorm. Dar prea multe lucruri s-au schimbat de la crearea ghidului și nu pot găsi un răspuns :(
Deci problema este:
export class AuthService {
user$: Observable<User>; //This Observable can be NULL or undefined.
constructor(
private afAuth: AngularFireAuth,
private afs: AngularFirestore,
private router: Router
) {
this.user$ = this.afAuth.authState.pipe( //this one is not assignable to null or undefined
switchMap(user => {
// Logged in
if (user) {
return this.afs.doc<User>(`users/${user.uid}`).valueChanges();
} else {
// Logged out
return of(null);
}
})
)
}
}
Primesc întotdeauna această eroare:
Tipul 'Observable
' nu poate fi atribuit tipului 'Observable'. Tipul 'User | null | undefined' nu poate fi atribuit tipului 'User'. Tipul 'undefined' nu poate fi atribuit tipului 'User'.ts(2322)
Dar nu pot să îmi dau seama ce să fac.
Aceasta este documentația originală:
https://fireship.io/lessons/angularfire-google-oauth/
Răspuns #1
În metoda ta poți eventual să returnezi null, așa că trebuie să declari Observable-ul user$ca fiind posibil null sau undefined de asemenea
user$: Observable<User | null | undefined>;
