簡體   English   中英

如何在Firestore中獲取1個文檔?

[英]How do I get 1 single document in firestore?

我在這個愚蠢的事情上浪費了大約2個小時。 當我記錄所有內容時,我看到的只是一個DocumentSnapshot對象,並且在模板視圖中什么都沒有顯示。 我究竟做錯了什么? 我應該只是將整個文檔傳遞給組件,而不是嘗試根據ID獲取單個文檔嗎?

//component.ts

constructor(db: AngularFirestore) { 
    this.contactCollection = db.collection('contacts');

    this.contact = this.contactCollection.doc('YYlKh7Gg7khN8L636iYE')
}

//viewTemplate.ts

{{this.contact | async}}

您缺少.valueChanges()函數。 在下面添加了它,現在您可以將整個文檔放回viewTemplate.ts並且可以調用其上的任何字段。

//component.ts

constructor(db: AngularFirestore) { 
    this.contactCollection = db.collection('contacts');

    this.contact = this.contactCollection.doc('YYlKh7Gg7khN8L636iYE').valueChanges();
}

//viewTemplate.ts

{{this.contact | async}}

.valueChanges();

這是對我的評論的正式回答:

contact是一個Promise ,必須對其進行包裝以獲取基礎價值。 在模板中,我們需要一種方式來傳達這一點:

  1. AsyncPipe
  2. 安全導航員? (確保我們不會嘗試不及時訪問未包裝的值而導致運行時錯誤)

將所有內容放到模板中:

{{(contact | async)?.some_prop}}

展開contact 之后,這會適當地等待訪問some_prop (從Promise返回值)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM