Angular Сервер Universal + AngularFire зависает из-за конвейера first () - PullRequest
2 голосов
/ 08 мая 2020

Я создаю приложение 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",

Кто-нибудь знает, что это происходит?

1 Ответ

0 голосов
/ 07 июля 2020

Да, это та же проблема, что и здесь .

Обычно это происходит, когда вы используете запрос .where () с take (1) или first (). Надеюсь, исправление уже в пути.

...