输入'可观察的<用户空undefined>'不可分配给类型'Observable<User>'

我正在尝试使用 Firestorm 创建 Google 登录。但是自从指南创建以来,很多事情都发生了,我找不到答案:(

所以问题是:

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);
        }
      })
    )
    
   }
}

我总是收到这个错误:

输入'可观察的<用户| 空| undefined>' 不可分配给类型 'Observable'。输入'用户| 空| undefined' 不能分配给类型 'User'。类型“未定义”不可分配给类型“用户”.ts(2322)

但我不知道该做什么。

那是原始文档:

https://fireship.io/lessons/angularfire-google-oauth/

回答

在您的方法中,您可能会返回 null,因此您也可以将 user$ Observable 声明为可能为 null 或 undefined

  user$: Observable<User | null | undefined>;


以上是输入'可观察的&lt;用户空undefined&gt;'不可分配给类型'Observable&lt;User&gt;'的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>