如何在一个promise中加载firebase集合及其所有子集合?

问题描述

我目前正在尝试找出如何使用RxJS加载角度/射击集合,包括其所有子集合。

这是我目前的方法

return this.collectionRef.valueChanges().pipe(
      flatMap((entities: Entity[]) => entity),mergeMap((entity: Entity) => this.setSubCollection1(entity)),mergeMap((entity: Entity) => this.setSubCollection2(entity)),scan((entities: Entity[],entity: Entity) => entities.filter(a => a.id !== entity.id).concat(entity),[])
    );

并将文档加载到其子集合中

  private setSubCollection1 = (entity: Entity): Observable<Entity> => {
    return this.subCollectionRef.valueChanges(actor).pipe(
      map((subEntities1: SubEntity1[]) => {
        entity.subEntities1 = subEntities1;
        return entity;
      })
    );
  }

全流播放时效果很好。 但是,现在我想在一个Promise中获取所有数据:我已经尝试过.first().toPromise(),但这仅获取一个条目,如果集合中没有条目,则不会完成。在查询中使用reduce也不起作用,因为valueChanges()永远不会完成。

我使用了错误的运算符吗?或关于如何解决该问题的其他想法?

我希望收到你的来信。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)