Я создаю приложение 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."
Как я могу это исправить?