0

我正在使用 RXFire 和 RXJS。

collectionData(firebase.firestore.collection('collectionname')).subscribe(x=>console.log(x)

返回

// [{document1}, {document2}]

我想要的是一个可观察的返回

// {document1}
// {document2}

我尝试使用 from() 和 toArray() 的组合(即将 observable 转换为普通数组并返回到一个一个发出每个文档的 observable),但 toArray() 只创建一个发出数组的 observable,不是一个实际的数组。我需要一个与 toArray() 相反的操作。获取一个发出数组的 observable 并将其转换为一个单独发出每个值的 observable。

我怎么做?


编辑:

我也尝试过做类似的事情

const newObs = oldObs.subscribe(x => from(x))

但它存储订阅者,而不是新的 observable。=(

4

1 回答 1

0

有多种方法可以做到这一点。例如:

collectionData(firebase.firestore.collection('collectionname'))
  .pipe(
    concatAll(),
  )
  .subscribe();

您也可以使用concatMap(array => array).

而不是concat*你也可以使用merge*

于 2020-03-28T20:04:26.750 回答