gpt4 book ai didi

javascript - 按降序从 Firebase 获取数据

转载 作者:行者123 更新时间:2023-12-03 03:50:31 25 4
gpt4 key购买 nike

我需要按降序从 Firebase 获取数据。

当组件第一次加载时,一切正常。

  fetchData(){
return this.af.list('/path/path/',{
query: {
orderByChild: 'createdAt'
}
}).map(arr => {return arr.reverse();});
}

获取广告的数据存储在 var 中,然后显示。

但现在的问题是 var 在运行时被修改,用户可以更新 var 数组,或者删除或添加它。

每当发生这些操作时,Firebase 数据库上的数据就会被修改,并再次调用获取数据。

但随后又发生了相反的情况,使得整个东西使用更少。

我的意思是在第一个组件加载之后,var 是 1,2,3,4。但是当我们添加到 var 而不是变成 1,2,3,4,5 时,它变成了 5,4,3,2,1。

这非常令人困惑,但我尝试了很多但无法解决这个问题。

更新

 ngOnInit() {

this.display = this.route.snapshot.data['Auth'];

if(this.display){
this.showProgress = true;
this.user = JSON.parse(localStorage.getItem("user"));
this.service.fetchData().subscribe((data) => {
this.comments = data;
this.showProgress = false;
});
} else {
this.afAuth.authState.subscribe((data) => {
if (data) {
localStorage.setItem("user", JSON.stringify(data));
this.user = data;
this.service.fetchData().subscribe((res) => {
this.comments = res;
this.showProgress = false;
});
} else {
this.comments = null;
}
});

这就是运行时发生的情况,其余所有都是 angular2firebase 的 CRUD 函数,当我们添加更新或删除时发生

我尝试使用管道进行相同的操作,但在获取索引时会导致问题,因此我放弃了该计划,因为它变得太复杂了

add(){
this.service.postComment(this.comment, this.user);
}

editComment(key:string,updatedComment:any){
const index = ((this.page-1)*5)+i;
const updated = this.comments[index];
updated.comment = comment;
this.service.editComment(updated.$key,updated);
}

deleteComment(key:String){
this.service.deleteComment(this.comments[index].$key);
}

最佳答案

我相信您这里有一个拼写错误:

  editComment(key:string,updatedComment:any){
this.service.editComment(updatedComment.$key, updatedComment); // I changed `updated` to `updatedComment`
}

您可以做的另一件事是遵循反向自定义管道方法,当您这样做时,删除 reverse()来自您的map()fetchData() .

反向管道:

import {Pipe} from 'angular2/core';

@Pipe({
name: 'reverse',
pure: false
})
export class ReversePipe {
transform (values) {
if (values) {
return values.reverse();
}
}
}

更新:

尝试将映射和反转的响应声明为 FirebaseListObservable<any[]> .

 fetchData(){
return this.af.list('/path/path/',{
query: {
orderByChild: 'createdAt'
}
}).map((array) => array.reverse()) as FirebaseListObservable<any[]>;
}

关于javascript - 按降序从 Firebase 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45185026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com