如何从Angular的集合中正确检索FireStore对象的数组?

问题描述

到目前为止,在我的应用程序中,我从模拟对象数组(每个对象代表表的一行)中检索了必须显示在表中的数据。

最初,我只是在组件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控制台中打印:

enter image description here

所以我认为我必须以某种方式从该对象中提取数组。我想念什么?我该怎么办?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)