javascript - WEBPACK_IMPORTED_MODULE_3 CollectionGroup 不是函数-firebase 集合组查询嵌套数据
问题描述
提示:有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,
};
})
])
})
},
[])
解决方案
当您doc()
不带参数调用时,它会生成一个新的唯一 ID。对于集合组查询,collection('products').doc()
完全跳过初始并执行以下操作:
firestore.collectionGroup('productReviewClips')...
该collectionGroup
函数是对象的一部分,它在or对象Firestore
上不可用,这也是您收到“不是函数”错误的原因。CollectionReference
DocumentReference
如果您只想搜索productReviewClips
特定路径下的集合,可以使用 Sam 在此处解释的技巧:CollectionGroupQuery but limit search to subcollections under a specific document
推荐阅读
- jquery - 数据表的排序重置了我的日期范围搜索
- powershell - 从本地连接到 Azure VM
- forms - symfony 4 中 `getBlockPrefix` 的限制值
- php - 创建发票无法通过 Paypal REST API
- javascript - React Native 将文本组件转换为字符串
- selenium - Selenium -- 单击元素的空白区域
- linux-device-driver - 为什么 cdev_add 不执行 driver/base/core.c 的 device_add/kobject_add 之类的操作
- javascript - 使表格单元格为同一行并使其看起来像按钮
- excel - VBA excel中如何设置散点图的X轴?
- typo3 - Getting translated records in CommandController