【发布时间】:2019-05-15 00:56:09
【问题描述】:
我正在创建一个 Angular 应用程序,其中一项任务是,我需要从 Firestore 读取数据并保存到一个数组中,我的代码 sn-p 如下:
public getListingData(): Observable < RequestListingModel > {
console.log("getting listing...");
this.firestore.collection('Requests').snapshotChanges().subscribe(
requests => {
this._listRequestItems = requests.map(a => {
const data = a.payload.doc.data() as RequestItemModel;
data.requestId = a.payload.doc.id;
console.log("doc found - " + data.requestId);
return data;
})
});
const requestListingModel = {
items: this._listRequestItems
}
as RequestListingModel;
return of(requestListingModel);
}
import * as dayjs from 'dayjs';
export class RequestItemModel {
name: string;
address: string;
category: string;
requestId: string;
postBy: string;
description: string;
// Default mock value
// expirationDate = '12/01/2018';
expirationDate: string = dayjs().add(5, 'day').format('MM/DD/YYYY HH:mm:ss') as string;
}
export class RequestListingModel {
items: Array<RequestItemModel> = [];
constructor(readonly isShell: boolean) { }
}
调用getListingData()函数时总是返回空,但是控制台可以成功打印出每个requestId,我认为我存储到数组的方式有问题,请帮忙,谢谢!
【问题讨论】:
标签: javascript angular ionic-framework google-cloud-firestore