Я создаю приложение angular / firestore, которому требуется SSR. Я добавил angular universal, и все работает хорошо, пока я не использую канал first () для любого из вызовов firestore, после чего сервер просто зависает. Мне нужен первый канал, потому что я зависим от него при использовании преобразователя маршрутов в двух своих вызовах. Вот пример моего кода:
Service:
return this.db
.collection("posts", (ref) => ref.where("featured", "==", true))
.snapshotChanges()
.pipe(
first(),
map((snaps) => this.convertSnaps<Post>(snaps)),
catchError((val) => of(val))
);
Resolver:
export class FeaturedResolver implements Resolve<Post[]> {
constructor(private postsService: PostsService) {}
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<Post[]> {
return this.postsService.featuredPosts();
}
}
home-routing:
{
path: "",
component: HomeComponent,
resolve: {
featuredPosts: FeaturedResolver,
},
},
Компонент:
ngOnInit(): void {
this.posts = this.route.snapshot.data["featuredPosts"];
}
пакет. json:
"@angular/fire": "^6.0.0",
"firebase": "^7.14.2",
Кто-нибудь знает, что это происходит?