这是我的新应用。
Angular fire 2 + Firebase
getErros(start, end): FirebaseListObservable<any>{
this.lista = this.db.list('/erros/geral',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
});
this.lista2 = this.db.list('/erros/utilsst',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
});
this.lista3 = this.db.list('/erros/utilfac',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
});
this.lista4 = this.db.list('/erros/geral',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
});
this.listafinal = (this.lista && this.lista2 && this.lista3 && this.lista4);
return this.listafinal;
}
来自firebase的简单数据搜索但无法使其正常运行。有没有办法执行此操作?
不能让它运转起来。仅接收来自this.lista4的数据
答案 0 :(得分:1)
我建议使用combineLatest
。使用此运算符,您可以将所有四个组合成单个observable,如果任何一个observable被更改,这将生成一个新值
Observable.combineLatest(
this.db.list('/erros/geral',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
}),
this.db.list('/erros/utilsst',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
}),
this.db.list('/erros/utilfac',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
}),
this.db.list('/erros/utilatas',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
})
)
.map(([geral, utilsst, utilfac, utilatas]: [any, any, any, any]) =>
({ geral, utilsst, utilfac, utilatas }) // Do add operation here.
)
答案 1 :(得分:0)
我对代码做了一些更改。
import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
import { Observable } from 'rxjs/Rx';
import * as Rx from 'rxjs';
@Injectable()
export class ProcurarService {
constructor(private db: AngularFireDatabase) {
}
hey;
getErros(start, end): FirebaseListObservable<any>{
this.hey = Observable.combineLatest(
this.db.list('/erros/geral',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
}),
this.db.list('/erros/utilsst',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
}),
this.db.list('/erros/utilfac',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
}),
this.db.list('/erros/utilatas',{
query: {
orderByChild: 'titulo',
limitToFirst:10,
startAt: start,
endAt: end
}
})
)
.map(([geral, utilsst, utilfac, utilatas]: [any, any, any, any]) => { let erro = [geral, utilsst,utilfac,utilatas]; console.log(erro); return erro; } )
return this.hey;
}
}
它不显示数据,而且搜索栏也没有显示...