【问题标题】:Trouble Accessing Database. Firebase 9.0访问数据库时遇到问题。火力基地 9.0
【发布时间】:2021-08-31 04:25:16
【问题描述】:

我目前正在学习 Udemy 课程(2021 年完成 React 开发人员),我们正在尝试将 Firebase/Firestore 集成到电子商务项目中。不幸的是,本教程使用的是 Firebase V6.10,我希望使用最新版本 9.0。

我已经设法弄清楚如何初始化它并添加 Google 身份验证器,但现在无法从他们让我们在 Cloud Firestore 上创建的集合中查询数据。

这是我试图添加的导致我的错误的函数:

> export const createUserProfileDocument = async(userAuth,
> aditionalData) => {
>       if (!userAuth) return;
> 
>       const querySnapshot = await getDocs(collection(db, 'users'));
>       querySnapshot.forEach((doc) => {
>         console.log(`${doc.id} => ${doc.data()}`);
>       });
>          }

这段代码给了我一个编译失败的错误,并说'db is not defined'。

我尝试将 db 定义为我认为是 CollectionReference 的字符串,在这种情况下为“crwn-db-ff8b4”。这给了我一个错误

未处理的拒绝 (FirebaseError):collection() 的第一个参数应为 CollectionReference、DocumentReference 或 FirebaseFirestore

我很困惑我到底需要什么 db 的值。

如果有帮助,这是我的 Firestore 数据库页面的快照。

【问题讨论】:

  • 这里没有足够的信息。正如错误消息所暗示的那样,我们实际上无法看到 db 是否是“CollectionReference、DocumentReference 或 FirebaseFirestore”。它不能只是一个字符串 - 它必须是所需的数据类型。请编辑问题以显示minimal complete example,任何人都可以使用它来重现错误。

标签: javascript reactjs firebase google-cloud-firestore


【解决方案1】:

我不确定您在哪里初始化了 Firestore,但错误提示 db 未定义。尝试添加:

const db = getFirestore()

const querySnapshot = await getDocs(collection(db, 'users'));

【讨论】:

  • 非常感谢您。我一直在努力弄清楚课程讲师想要在哪里发生,然后将其转化为 9.0 的新方式。在阅读了您的答案并返回文档后,我看到答案就在那里,我只是转了太多次才看到它。再次感谢。
猜你喜欢
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 2016-09-17
  • 1970-01-01
  • 2015-01-31
相关资源
最近更新 更多