gpt4 book ai didi

angular - 如何获取具有id的特定文档数据? | AngularFire 5.1.1 | Cloud Firestore |文件资料

转载 作者:行者123 更新时间:2023-12-01 09:43:35 25 4
gpt4 key购买 nike

我正在使用数据访问服务从Firebase Firestore获取数据。

如何使用snapshotChanges()方法获取具有ID的特定文档数据

getProduct(id: number): Observable<Product> {
this.productsDocuments = this.angularfirestore.doc<Product>('products/' + id);
this.product = this.productsDocuments.snapshotChanges().pipe(
map(changes => changes.map(a => {
const data = a.payload.doc.data() as Product;
const id = a.payload.doc.id;
return { id, ...data };
}))
);
return this.product

我想要this.product返回文档值和文档ID

谢谢你!!

最佳答案

文档只是对象{[field]: value}集合是文档[document]的容器。

您试图获取一个文档/对象,但问题是您无法直接映射到它。我认为您想获取整个集合,然后映射所有文档。
getProduct(id: number): Observable<Product> {
const productsDocuments = this.db.doc<Product>('products/' + id);
return productsDocuments.snapshotChanges()
.pipe(
map(changes => {
const data = changes.payload.data();
const id = changes.payload.id;
return { id, ...data };
}))
}

收集
getProduct(id: string): Observable<Product[]> {
const productsDocuments = this.db.collection<Product[]>('products');
return productsDocuments.snapshotChanges()
.pipe(
map(changes => changes.map(({ payload: { doc } }) => {
const data = doc.data();
const id = doc.id
return { id, ...data };
})),
map((products) => products.find(doc => doc.id === id)))
}

关于angular - 如何获取具有id的特定文档数据? | AngularFire 5.1.1 | Cloud Firestore |文件资料,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54070697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com