I'm trying to retrieve my documents with id but can't figure it out.
Currently I retrieve my documents like this :

const racesCollection: AngularFirestoreCollection<Races> = this.afs.collection('races');
return racesCollection.valueChanges();

我确实可以完美地获得我的文档列表,但是没有文档id.

如何 for each 文档检索它?

推荐答案

我终于找到了解决办法.维克多对文件数据很了解.

const racesCollection: AngularFirestoreCollection<Race>;
return racesCollection.snapshotChanges().map(actions => {       
  return actions.map(a => {
    const data = a.payload.doc.data() as Race;
    data.id = a.payload.doc.id;
    return data;
  });
});

ValueChanges()不包括元数据,因此,当我们需要文档id时,必须使用SnapshotChanges(),然后按照此处所述正确映射它

Angular相关问答推荐

带有两个注入服务的函数式解析器(Angular 15)

无法添加@angular/pwa

截取提取后端S获取添加授权头的请求

NG-BOOTSTRAPP SCROLLESPY没有高度就不能工作?

NGX- colored颜色 Select 器安装出错

当元素在元素上使用迭代变量时,如何重构ngFor?

对Angular 为17的路径使用AuthGuard

Angular 17-getEnvironment InjectorProviders出现异常

在以下位置升级到Angular 16 Break Sharepoint广告:This._history.replaceState不是函数

用于 React 的 ngx-extended-pdf-viewer

无法创建新的 Ionic 项目

从组件调用时服务中的 AddTodo 方法不起作用

显示带有数组子列的标题表 - Angular

刷新页面导致 401 错误-Angular 8

如何检测滚动到html元素的底部

Failed to execute 'setAttribute' on 'Element': ']' is not a valid attribute name

得到了预期表达式的插值 ({{}})

Angular 2 Material 2 日期 Select 器日期格式

如何防止角material垫菜单关闭?

declarations和entryComponents组件有什么区别