Как получить один документ по ID Angular 4 + Firestore

Как заставить это работать хорошо? Мне нужен только один документ из базы с id. Можно ли на него подписаться? Потому что он возвращает мне наблюдаемый объект:(

Вот мой код.

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

4 ответа

Я думаю, что вы пытаетесь сделать это:

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);
});}

Вышеизложенное - самый простой способ, которым я знаю, чтобы прочитать документ в пожарном депо. Он покажет внутренние данные из вашего документа. Я надеюсь, что это поможет вам.

Попробуем преобразовать наблюдаемое в обещание вот так

  async getDocument(docId:string){
    let document = await this.afs.doc(docId).get().toPromise();
    return document.data();
  }

If you also want the id of the document and use an observable instead, do:

      this.firestore.collection('collection').doc('someid').snapshotChanges().subscribe(
      res => {
        this.item= { id: res.payload.id, ...res.payload.data() as InterfaceName };
      },
      err => {
        console.debug(err);
      }
    )

Прежде всего, вы должны убедиться, что ваш идентификатор правильный. И я полагаю, вы использовали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}
                });
   }
Другие вопросы по тегам