在Firestore中,我的uid
文档中有一个Vendor
字段:
/vendors
+doc1
uid: 1
+doc2
uid: 2
要访问供应商,我使用以下功能:
getVendor(index: string): AngularFirestoreDocument<Vendor> {
return afs.doc<Vendor>(`vendors/${index}`);
}
我想创建一个类似的函数,它也会返回AngularFirestoreDocument
,但该函数需要uid
来获取文档:
getVendorByUID(uid: string): AngularFirestoreDocument<Vendor> {
...
return theDoc;
}
似乎我必须查询AngularFirestoreCollection,但不知道如何从集合中提取文档。
答案 0 :(得分:1)
我建议使用uid作为记录的键;这样,您就可以通过带有{getVendor
否则,您需要查询:
// Query the first vendor where the uid matches
afs.collection<Vendor>(`vendors`, ref => ref.where('uid', '==', uid).limit(1))
.valueChanges()
.pipe(
map(vendors => vendors[0]) // flatten the result
);