Angular 从cloud firestore获取自动生成的id

Angular 从cloud firestore获取自动生成的id,angular,Angular,我从CloudFireStore中获取了角度组件中的数据,如下面的代码所示 服务文件 import { Injectable } from '@angular/core'; import {AngularFirestoreDocument,AngularFirestore,AngularFirestoreCollection} from 'angularfire2/firestore'; import { Observable } from 'rxjs'; @Injectable({

我从CloudFireStore中获取了角度组件中的数据,如下面的代码所示

服务文件

import { Injectable } from '@angular/core';
import 
{AngularFirestoreDocument,AngularFirestore,AngularFirestoreCollection} 
from 'angularfire2/firestore';

import { Observable } from 'rxjs';


@Injectable({
providedIn: 'root'
})
export class ItemsService {
itemscollection:AngularFirestoreCollection<any>
items:Observable<any[]>

constructor(public afs:AngularFirestore,db:AngularFirestore) { 


}

getitems(){

  return   

this.items=this.afs.collection('categories',ref=>ref.orderBy('name'))
.valueChanges()  

}

}
然后我将其呈现到html组件中 但我的问题是如何从数据库中检索所有自动生成的id,如下面的屏幕截图所示

使用snapshotChanges()代替valueChanges()。它看起来像这样

导出常量mapFireBaseListResponse=(列表:AngularFireList)=>

使用snapshotChanges()代替valueChanges()。它看起来像这样

导出常量mapFireBaseListResponse=(列表:AngularFireList)=>

export class AdminNewComponent implements OnInit {
@ViewChild('f') form:NgForm
categories
default="Bread"
constructor(public iservice:ItemsService,private 
prservice:ProductsService,private router:Router,private 
route:ActivatedRoute) { }

ngOnInit() {
this.iservice.getitems().subscribe(items=>{
  this.categories=items
  // console.log(this.categories)

})
}
list.snapshotChanges().pipe(
    map(items => 
        items.map(item => ({
                key: item.payload.key, 
                ...item.payload.val()
            })
        )
    )
);