Angular 在Firebase中更新项目时,项目列表会随机移动

Angular 在Firebase中更新项目时,项目列表会随机移动,angular,firebase,firebase-realtime-database,angularfire2,Angular,Firebase,Firebase Realtime Database,Angularfire2,更新Firebase中的值时,我的项目列表会被洗牌几秒钟 这是我的服务(todos.service): 。。。 将类导出到服务{ todos$:FirebaseListObservable 建造师( 私有数据库:AngularFireDatabase ) { 此.todos$=db.list('/todos/')作为FirebaseListObservable; } getToDos(过滤器){ 如果(过滤器==未定义){ 把这个还给我$ } 返回这个.todos$.map(_-todo=>

更新Firebase中的值时,我的项目列表会被洗牌几秒钟

这是我的服务(todos.service):

。。。
将类导出到服务{
todos$:FirebaseListObservable
建造师(
私有数据库:AngularFireDatabase
) {
此.todos$=db.list('/todos/')作为FirebaseListObservable;
}
getToDos(过滤器){
如果(过滤器==未定义){
把这个还给我$
} 
返回这个.todos$.map(_-todo=>_-todo.filter(todo=>todo.done==filter));
}
添加todo(todo){
todo.date=firebase.database.ServerValue.TIMESTAMP;
这个.todos$.push(todo);
console.log('addTodo');
}
updateTodo(键,todo){
此.todos$.update(键,todo);
}
删除todo(todo){
此.todos$.remove(todo);
}

}
如果您将reverse()取下,它在更新过程中是否仍会翻转?如果没有reverse(),它不会翻转。我不明白为什么它会用reverse()翻转。我肯定我在观察中遗漏了一些东西。另外,在哪里对我的数据进行排序是最好的?