如何通过Firestore的Playlist中Video引用获取视频URL数组?
可行,具体实现如下
- 建议先对视频引用数组去重,避免重复请求同一文档浪费资源
- 通过
Promise.all()批量获取所有视频文档,再提取url属性
完整代码示例:
// 先去重:利用引用的path作为唯一标识 const uniqueVideoRefs = [...new Map(arr.map(ref => [ref.path, ref])).values()]; // 批量获取文档并提取url const videoUrls = await Promise.all( uniqueVideoRefs.map(async ref => { const doc = await ref.get(); if (doc.exists) { return doc.data().url; } // 处理文档不存在的情况,比如返回null或者跳过 return null; }) ); // 过滤掉可能的null值(可选) const validUrls = videoUrls.filter(url => url !== null);
补充说明:
- Firestore的
DocumentReference对象可直接调用get()方法获取对应文档 Promise.all()能并行发起请求,比逐个请求效率更高- 去重步骤很关键,尤其是多个播放列表包含同一视频时,可减少不必要的数据库请求
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

