【发布时间】:2020-09-09 17:21:42
【问题描述】:
在我的应用程序中,到目前为止,我从一个模拟对象数组(其中每个对象代表我的表的一行)中检索必须显示到表中的数据。
最初我只是在我的组件 TypeScript 代码中添加了类似的内容:
orders: any[];
然后进入我完成的 ngOnInit() 方法:
this.ordersService.getAllOrders().then(orders => {
this.orders = orders;
console.log("RETRIEVED ORDERS: ", orders);
this.loading = false;
});
我的服务的 getAllOrders() 方法只是从 JSON 文件中检索数据(数组):
getAllOrders() {
return this.http.get<any>('assets/json_mock/ordini.json', {responseType: 'json'})
.toPromise()
.then(res => res.data)
.then(data => { return data; });
}
效果很好。
现在我正在尝试从 FireStore 数据库中检索此对象数组,但遇到了一些问题。
我是这样做的。
现在进入我的组件类的 ngOnInit():
this.ordersService.getAllOrders().subscribe(ordersList => {
console.log("RETRIEVED ordersList: ", ordersList);
this.orders = ordersList;
console.log("RETRIEVED ORDERS: ", this.orders);
this.loading = false;
});
然后进入服务类 getAllOrders() 以这种方式更改:
getAllOrders(): Observable<any[]> {
this.ordersList = this.db.collection('Orders').snapshotChanges();
return this.ordersList;
}
它部分有效,因为它似乎从 FireStore 检索某些东西(连接工作正常),我认为也是我的“查询”。
问题是在我的组件的 subscribe() 方法中,这些行:
this.ordersService.getAllOrders().subscribe(ordersList => {
console.log("RETRIEVED ordersList: ", ordersList);
this.orders = ordersList;
console.log("RETRIEVED ORDERS: ", this.orders);
this.loading = false;
});
它在 Chrome 控制台中打印:
所以我认为我必须以某种方式从这个对象中提取我的数组。我错过了什么?我该怎么做?
【问题讨论】:
标签: angular firebase google-cloud-firestore angularfire2