在 Angular 中从 firebase 获取单个数据

问题描述 投票:0回答:1

我想通过 id 从 firebase 获取数据并填充更新表单。因此,首先要获取 id ,我有以下内容,但它将所有 id 作为数组返回。单击数据列表后如何仅获取单个数据?单击特定数据后,它会将我带到更新表单(反应式)。如上所述,我希望更新表单由 ID 填充。 id 也会传递到链接,即 client/id 。 服务中

getClient(id:any){
    return this.db 
    .collection('clients')
    .snapshotChanges()
    .pipe(map(docData => {
      return docData.map(doc => {
        return {          
          id: doc.payload.doc.id                  
        };
      });
    }))
    .subscribe(result => {
          console.log(result);
       });
    
  }      
                                 }

这将返回 firbase 中的所有 id,但是 我只需要单击的 id 并相应地填充表单。

angular typescript firebase google-cloud-firestore angular-reactive-forms
1个回答
0
投票

由于您已经有了一个 ID,并且将其作为参数传递给 getClient 方法,因此您可以直接读取文档。您的代码应如下所示:

getClient(id:any) {
    return this.db 
    .collection('clients')
    .doc(id)
    .get()
    .subscribe(doc => {
       console.log(doc.data());
    });
}  

就是这样。相反,在您的代码中,您正在侦听整个集合(而不仅仅是单个文档)发生的任何更改,并且每次都会通知您。

© www.soinside.com 2019 - 2024. All rights reserved.