I'm using firebase and Angular, here is my database with my users :
I want to sort my user by "ptsTotal".
I have a users.service with a function getUsersByPoints. But when I'm using it the console return to me : this.users.sort is not a function.
I don't see where I'm doing a mistake. could you help me to find the mistake or give me another solution to sort my user ?
Thanks a lot,
import { Injectable } from '@angular/core';
import {User} from '../models/user.model';
import {Subject} from 'rxjs/Subject';
import * as firebase from 'firebase';
@Injectable({
providedIn: 'root'
})
export class UsersService {
users: User[] = [];
usersSubject = new Subject<User[]>();
constructor() { }
emitUsers(){
this.usersSubject.next(this.users);
}
saveUsers(){
firebase.database().ref('/users').set(this.users);
}
getUsers(){
firebase.database().ref('/users')
.on('value',(data)=>{
this.users = data.val() ? data.val() : [];
this.users.sort((a,b)=>a.ptsTotal-b.ptsTotal);
this.emitUsers();
});
}