0

在 Firestore 中,我的文档中有uid一个字段:Vendor

/vendors
    +doc1
        uid: 1
    +doc2
        uid: 2

要访问供应商,我使用以下功能:

getVendor(index: string): AngularFirestoreDocument<Vendor> {
    return afs.doc<Vendor>(`vendors/${index}`);
}

我想创建一个类似的函数,它也返回一个AngularFirestoreDocument,但该函数需要 auid来获取文档:

getVendorByUID(uid: string): AngularFirestoreDocument<Vendor> {

    ...

    return theDoc;
}

似乎我必须查询 AngularFirestoreCollection,但不知道如何从集合中提取文档。

4

1 回答 1

1

我建议使用 uid 作为记录的键;这样你就可以通过 URL w/ 来引用它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
  );
于 2018-06-20T22:52:18.227 回答