【发布时间】:2021-12-20 21:27:55
【问题描述】:
提示: 有5个产品。每个产品有 5 条视频评论。这些评论嵌套在以下数据结构中。
产品 > 文档 > productReviewClips > 文档 {videoUrl: https://videoclip.mp4, uid: 1234}。
每个 productReviewClips 文档都有一个 videoUrl。
我是否以错误的方式查询所有产品的 videoUrls?
const [feed, setFeed] = useState([]);
useEffect(() => {
firestore.collection('products').doc().collectionGroup('productReviewClips')
.onSnapshot((snapshot) => {
// console.log(JSON.stringify(snapshot) + "1")
setFeed([...snapshot.docs.map((doc) => {
return {
...doc.data(),
documentID: doc.id,
};
})
])
})
},
[])
【问题讨论】:
-
不需要
setFeed([...snapshot.docs.map((doc) => { /* ... */ })]);,因为map()已经生成了一个新数组,只需使用setFeed(snapshot.docs.map((doc) => { /* ... */ }));代替。否则,你实际上是在做setFeed(snapshot.docs.map((doc) => { /* ... */ }).map(docData => docData));
标签: javascript firebase google-cloud-firestore react-hooks