【发布时间】:2022-01-04 04:57:16
【问题描述】:
我正在尝试访问 secondSnapshot.data() 返回的内容,但遇到了问题,如下面的 cmets 所述。我试图创建一个异步函数,但无济于事。知道出了什么问题吗? 请查看 2 cmets。
useEffect(() => {
firestore.collection(`comments`).onSnapshot((snapshot) => {
const posts = snapshot.docs
.map((doc) => {
const address = doc.data().comments?.map((comment) => {
comment.get().then((secondSnapshot) => {
console.log("snapshot", secondSnapshot.data());
#I SEE WHAT I EXPECT TO SEE
return secondSnapshot.data();
});
});
console.log(address) #THIS RETURNS UNDEFINED FOR SOME REASON??
return {
username: doc.data().username,
date: doc.data().date.seconds,
text: doc.data().text,
votes: doc.data().votes,
comments: [],
};
});
props.setComments(posts);
});
}, [location]);
【问题讨论】:
-
不要将你的 firestore 逻辑与你的 react 组件纠缠在一起。请参阅this Q&A 了解如何将事物分开的示例。
标签: javascript reactjs google-cloud-firestore async-await promise