按键过滤可观察的

时间:2017-05-05 07:52:20

标签: rxjs observable

我试图根据父键是否包含特定的子键来过滤可观察的列表。父键是Supplier,每个Supplier都有一个表示Users的子键列表。以下代码有效,但它返回包含任何子用户密钥的每个供应商 - 而不仅仅是包含特定用户密钥(FBKey)的供应商。

我意识到当前的过滤条件有点愚蠢,但它正是我经过多少摆弄并在网上查看的地方。

userIsSupplierAdministrator(FBKey: number): Observable<Supplier[]> {
const suppliers$ = this.af.database.list('supplier-administrators');
return suppliers$
  .filter(supplier => !isUndefined(this.af.database.object(`suppliers/${supplier.$key}/${FBKey}`)))
  .map(supplier => supplier.map(supp => this.af.database.object(`suppliers/${supp.$key}`)))
  .flatMap(supplierObs => Observable.combineLatest(supplierObs))
  .map(Supplier.fromJsonList);

}

我真的很感激有关如何构建过滤器的任何建议,以便它只返回包含特定子键(FFBKey)的供应商。

我正在使用Angular / Typescript / Firebase。

关心肖恩

1 个答案:

答案 0 :(得分:1)

我要求您完成此question,您将能够解决您的问题。 你遇到的问题与 observables 无关,你试图解决正常的javascript问题。

方法是

  1. 从observable
  2. 获取json响应
  3. 并使用以下概念过滤json
  4. Filter the value in object when the keys differ in an array