首页 > 解决方案 > 如何从 Firestore 集合创建一个 ion-reorder-group

问题描述

我需要从 firestore 集合创建一个 ion-reorder-group。更准确地说,来自可观察对象,因为要重新排序的列表可以实时更新。

我在这里从@Mirinda Corwin 获得了一些代码(Ionic / Firebase - 错误拼接不是函数(reorderArray))。

这是我改编自美琳达回答的代码:

import { Observable, ObjectUnsubscribedError } from "rxjs";
import { take } from 'rxjs/operators';

...

public membersListRef: AngularFirestoreCollection<any>;
public membersList$: Observable < any []>;
public membersList = {} as any;
public membersArray: any[];

...

this.membersArray = [];
this.membersListRef = this.firestore.collection(`/userProfile/${this.groupNumber}/membersList`);
this.membersList$ = this.membersListRef.valueChanges();

...

this.membersList$.take(1).subscribe((members) => {
  members.forEach(mdoc=>{
    console.log("id: , name:" + mdoc.id, mdoc.name);
       return  this.membersArray.push({id: mdoc.id, name:mdoc.name })
     })
   });

但我收到以下错误:“take 不是 observable 的属性”。

标签: ionic-frameworkcollectionsgoogle-cloud-firestore

解决方案


当前版本的 RxJS 更改了如何将运算符应用于流的方法,您应该使用“管道”方法:

this.membersList$.pipe(take(1)).subscribe(...);

https://www.learnrxjs.io/operators/filtering/take.html


推荐阅读