Не удалось получить обновленное значение коллекции при изменении authState с картой конвейера и коммутатора - PullRequest
0 голосов
/ 14 мая 2019

Я создаю приложение ionic 3 (из-за некоторых проблем с совместимостью ушел ionic 4, он явно еще не готов к работе), и теперь мне нужно использовать версию angular 5, что приводит меня к использованию rxjs 5.5. Этот код раньше нормально работал с rxjs 6.0

    import { Injectable } from '@angular/core';
    import { Router } from '@angular/router';
    import { Usuario } from '../model/usuario';
    import { first } from 'rxjs/operators';

    import { AngularFireAuth } from '@angular/fire/auth';
    import { AngularFirestore } from '@angular/fire/firestore';

    import { Observable, of } from 'rxjs';
    import { switchMap } from 'rxjs/operators';
    import { ToastService } from './toast.service';
    import { MenuController } from '@ionic/angular';

    @Injectable({
      providedIn: 'root'
    })
    export class AuthService {

      usuario$: Observable<Usuario>;

      constructor(
        private afAuth: AngularFireAuth,
        private db: AngularFirestore,
        private router: Router,
        private toast: ToastService,
        private menu: MenuController
      ) {

        this.usuario$ = this.afAuth.authState
        .pipe(

          switchMap(usuario => {

            if (usuario) {

              return this.db.doc<Usuario>(`usuario/${usuario.uid}`).valueChanges();

            } else {

              return of (null);

            }

          })

        );

      }

Но теперь, когда я использую его, я получаю эту ошибку:

"Argument of type 'UnaryFunction<Observable<User>, Observable<any>>' is not assignable to parameter of type 'OperatorFunction<User, any>'.
Types of parameters 'source' and 'source' are incompatible.
Type 'Observable<User>' is missing the following properties from type 'Observable<User>': takeUntil, buffer, bufferCount, bufferTime, and 104 more."

Как я могу это исправить?

...