Firestore 文档快照数据是否可以未定义?



使用打字稿我得到

QueryDocumentSnapshot<DocumentData>.data(options?: SnapshotOptions | undefined): DocumentData

问题是..我真的必须检查数据是否可能未定义吗

if (snapDoc.data()) //...
else //...

或者可以安全地snapDoc.data()!因为数据永远无法未定义?

如果它可以未定义,那么数据何时或在什么情况下返回未定义?

如果您使用返回DocumentSnapshotgetDoc(<DoucmentReference>)查询单个文档,那么是的,如果该文档不存在,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,该具有.docs属性(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());
});

如果它可以未定义,那么数据何时或在什么情况下返回未定义?

简而言之,当您使用getDoc()获取单个文档时,如果您在DocumentSnapshot上使用它,data()可以返回undefined

相关内容

  • 没有找到相关文章

最新更新