How can I sort the list of FirebaseListObservable in Angularfire2 Angular2?

I want to get all users from the Firebase database in real time and sort them by rating properties. This works for me, using a variable,
users: FirebaseListObservable<any[]>;
but I get errors:

Type 'Observable<any[]>' is not assignable to type 'FirebaseListObservable<any[]>'.
Property '_ref' is missing in type 'Observable<any[]>'.

If I change the variable users: Observable<any[]>;
then the errors go away, but then I cannot use Angularfire methods such as .push()and .update().

My select and sort code (which works) looks like this:

this.users = this.af.database.list('/users')
  .map(items => items.sort((a, b) => b.score - a.score));

I would appreciate any advice on how to do this to avoid errors or any preferred method, thanks!

+3
source share
2

FirebaseListObservable lift, RxJS - map - FirebaseListObservable.

- TypeScript - RxJS , Observable, FirebaseListObservable. ( RxJS TypeScript, , , .)

, FirebaseListObservable , push update, :

this.users = this.af.database
  .list('/users')
  .map(items => items.sort((a, b) => b.score - a.score)) as FirebaseListObservable<any[]>;
console.log(this.users.push.toString());
console.log(this.users.update.toString());

, , FirebaseListObservable, . .

+11

. . Query.

this.items = angularFire.database.list('/users', {
  query: {
    orderByChild: 'childPropertyName'
  }
});
Hide result

export interface Query {
    [key: string]: any;
    orderByKey?: boolean | Observable<boolean>;
    orderByPriority?: boolean | Observable<boolean>;
    orderByChild?: string | Observable<string>;
    orderByValue?: boolean | Observable<boolean>;
    equalTo?: any | Observable<any>;
    startAt?: any | Observable<any>;
    endAt?: any | Observable<any>;
    limitToFirst?: number | Observable<number>;
    limitToLast?: number | Observable<number>;
}
Hide result
+2

Source: https://habr.com/ru/post/1657665/


All Articles