我有两个Firestore集合,/ projects和/ tasks。 / tasks集合包含对/ projects集合中的id字段的引用字段。在打字稿中,我用一个projectname成员扩展了任务类。因此,在查询/ tasks集合时,我还需要返回项目名称。
我当前的代码是使用valueChanges(),我的第一次尝试是使用snapshotChanges()。
当前我的代码如下:
this.xtasks = this.tasksCollection.valueChanges().pipe(
map(values => values.map(data => {
return {
created: data.created,
createdby: data.createdby,
description: data.description,
due: data.due,
lastmodified: data.lastmodified,
lastmodifiedby: data.lastmodifiedby,
project: data.project, // i.e. /projects/<guid>
sort: data.sort,
state: data.state,
title: data.title,
uid: data.uid,
projectname: this.projectService.getProjectStringField(data.project.replace('/projects/', ''), 'name') // supposed to retrive name of a project by project guid
};
})
)
);
但是当管道返回结果时,项目名称为空。我尝试研究Promise,但无法获得它返回项目名称的值。
在代码段中,所有/ tasks字段均在数据对象中表示,但我也想获取项目名称。