在一个嵌套集合中检索文档
P粉682987577
P粉682987577 2024-03-22 13:50:45
0
1
1122

我正在开发一个React项目,在这个项目中,我想要列出已登录用户的文档。结构如下,我想要读取的文档位于集合中。

数据库结构如下:

users(集合) -> user(文档) -> repos(集合) -> repo(文档) -> files(集合) -> files(文档)

我想要读取的是repo(文档)。(它还有一些其他字段)。

这是我尝试的代码:

const userRef = doc(db, "users", userId)
const repoRef = collection(userRef, "repos")

const querySnapshot = await getDocs(repoRef);

querySnapshot.forEach((doc) => {
  console.log(doc.id, " => ", doc.data());
}

错误信息:

FirebaseError: 期望的类型是 'DocumentReference',但实际上是:一个自定义的CollectionReference对象

P粉682987577
P粉682987577

全部回复(1)
P粉418351692

如果您只想查询一个文档,则需要指定您的仓库文档 ID:

import { doc, getDoc } from "firebase/firestore"

const docRef = doc(db, `users/${userId}/repos/${repoDocId}`);
const docSnapshot = await getDoc(docRef);

console.log("repo doc data:", docSnapshot.data())

如果您想查询所有仓库,则需要查询集合:

import { collection, query, where, getDocs } from "firebase/firestore";

const querySnapshot = await getDocs(
  query(collection(db, `users/${userId}/repos`))
)

querySnapshot.forEach((doc) => {
  console.log(doc.id, " => ", doc.data())
});

您可以在此处找到更多相关信息。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板