我想通过 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 并相应地填充表单。
由于您已经有了一个 ID,并且将其作为参数传递给 getClient 方法,因此您可以直接读取文档。您的代码应如下所示:
getClient(id:any) {
return this.db
.collection('clients')
.doc(id)
.get()
.subscribe(doc => {
console.log(doc.data());
});
}
就是这样。相反,在您的代码中,您正在侦听整个集合(而不仅仅是单个文档)发生的任何更改,并且每次都会通知您。