从返回元数据的 firestore 获取数据

get data from firestore returning metadata

Firebase 版本 9.6.9

我正在使用 onSnapshot 函数从 firestore 获取数据。

代码:

  const [posts, setPosts] = useState([])

  useEffect(() => {
    return onSnapshot(
      query(collection(db, 'posts'), orderBy('timestamp', 'desc')),
      (snapshot) => {
        console.log(snapshot.docs)
      }
    )
  }, [db])

snapshot.docs 记录元数据而不是我需要的数据(帖子集合)。

snapshot.docsQueryDocumentSnapshot的数组。您可以通过在每个快照上使用 .data() 方法从文档中获取数据,如下所示:

return onSnapshot(
  query(collection(db, 'posts'), orderBy('timestamp', 'desc')),
  (snapshot) => {
    const result = snapshot.docs.map((d) => ({
      id: d.id,
      ...d.data()
    }))
    console.log('>>> Documents', result)
  }
)

metadata 有一些关于快照的信息,例如来源。