使用打字稿我得到
QueryDocumentSnapshot<DocumentData>.data(options?: SnapshotOptions | undefined): DocumentData
問題是..我真的必須檢查資料是否可能未定義
if (snapDoc.data()) //...
else //...
snapDoc.data()!還是因為資料永遠不能未定義而這樣做是安全的?
如果它可以是未定義的,那么資料何時或在什么情況下回傳未定義?
uj5u.com熱心網友回復:
getDoc(<DoucmentReference>) 如果您使用回傳 a DocumentSnapshotthen yes查詢單個檔案,如果該檔案不存在data()則回傳。undefined
const docSnap = await getDoc(docRef);
if (docSnap.exists()) {
console.log("Document data:", docSnap.data());
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
如果您使用 查詢多個檔案getDocs(<query>),QuerySnapshot則回傳 a ,該.docs屬性 (array of QueryDocumentSnapshot) 包含所有肯定存在的匹配檔案。所以.data()永遠不會像檔案undefined中提到的那樣出現這種情況。
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});
如果它可以是未定義的,那么資料何時或在什么情況下回傳未定義?
簡而言之,如果您在使用它獲取單個檔案時使用它,data()則可以回傳undefinedDocumentSnapshotgetDoc()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/428557.html
上一篇:如何在vue3和typescript中正確鍵入vuex模塊
下一篇:在本機反應中創建特定的時間范圍
