如何通过ID Angular 4 + Firestore获取一个文档

时间:2017-11-10 12:57:20

标签: angular firebase google-cloud-firestore

如何让它工作正常?我只需要一个基于id的文档。是否有可能订阅它?因为它返回一个Observable对象:(

这是我的代码。

getByid(id){
  return this.itemscollection.doc('9K6ue-afwwafwaf').valueChanges();
  }

4 个答案:

答案 0 :(得分:2)

让我们尝试将可观察对象转换为这样的承诺

SubCategory

答案 1 :(得分:1)

我认为你正在尝试这样做:

constructor(db: AngularFirestore){
db.collection('yourcollection').doc("documentid").ref.get().then(function (doc) {
  if (doc.exists) {
    console.log(doc.data());
  } else {
    console.log("There is no document!");
  }
}).catch(function (error) {
  console.log("There was an error getting your document:", error);
});}

以上是我在firestore上阅读文档时最简单的方法。它将显示文档中的内部数据。我希望它对你有所帮助。

答案 2 :(得分:0)

首先,您应该确保您的 id 是正确的。 我假设您使用AngularFirestore连接到Firebase。

   public this.itemsCollection = null;
   public constructor(private af: AngularFirestore) {
     this.itemCollection = this.af.collection('Your-colection-name');
   }

   public getById(docId: string): any {
     return this.itemCollection
                .doc(docId)
                .valueChanges()
                .subscribe(item => {
                  return item; 
                  // If you prefer including itemId back to object
                  // return {...item, id: docId}
                });
   }

答案 3 :(得分:0)

如果您还想要文档的 FROM postgres:9.6.18 ENV POSTGRES_PASSWORD postgres ENV POSTGRES_DB import COPY docker/admin-db/*.sql /docker-entrypoint-initdb.d/ 并使用 observable,请执行以下操作:

id