firebase 查询Firestore上的数据并遵循文档参考

wyyhbhjk  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(129)

播放列表集合(包含视频参考)

视频集锦

查询一下

const queryRef = firestore.collection('playlists').where('machines', 'array-contains', id)
const snapshot = await queryRef.get()

将数据转换为视频阵列

snapshot.forEach(doc => {
  // console.log(doc.id, '=>', doc.data());
  const playlist = doc.data() as Playlist
  arr.push(...playlist.videos)
});

从而导致

[
   {
      "_firestore":{
         "projectId":"my-app"
      },
      "_path":{
         "segments":[
            "videos",
            "BigBuckBunny"
         ]
      },
      "_converter":{
         
      }
   }
]

我想要的是:
视频文档具有属性url;我想建立一个使用视频参考这些网址的数组。
这可能吗?

s8vozzvw

s8vozzvw1#

如果我正确理解了你的问题,你需要用get()方法来获取视频文档。由于你想并行执行异步get()方法的不确定数量的调用,你需要使用Promise.all()如下:

const queryRef = firestore.collection('playlists').where('machines', 'array-contains', id)
const snapshot = await queryRef.get()

const promises = [];
snapshot.forEach(doc => {
    const videosRefArray = doc.data().videos;  // Array of DocumentReferences
    videosRefArray.forEach(videoRef => {
        promises.push(videoRef.get())
    })
});

const docSnapshotsArray = await Promise.all(promises);

相关问题