未捕获的类型错误:db.collection 不是 firebase 中实时数据库的函数

mon*_*ece 1 firebase react-native firebase-realtime-database google-cloud-firestore

当我尝试访问我的收藏时,出现以下错误。我的 firebase 应用程序在我的主应用程序组件内初始化。

我没有在这里包含配置对象,但我知道它可以工作,因为我也在我的应用程序中使用了 firebase auth,它工作得非常好。应用程序.js

componentDidMount(){
  if (!firebase.apps.length) {
    firebase.initializeApp(firebaseConfig);
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图进行数据库调用的组件


componentDidMount(){

const db = firebase.database();
const ref = db.collection('Users/Notes').doc()

  let getDoc = ref.get()
  .then(doc => {
    if (!doc.exists) {
      console.log('No such document!');
    } else {
      console.log('Document data:', doc.data());
    }
  })
  .catch(err => {
    console.log('Error getting document', err);
  });
}

Run Code Online (Sandbox Code Playgroud)

我通过将它包含在 App.js 中来立即呈现这个组件,我不知道这是否可能是一个问题?

Dou*_*son 7

您正在混合 Firebase 数据库产品。

firebase.database()为您提供一个对象来处理 Firebase 实时数据库中的数据。但是您编写的用于处理该对象的代码看起来像是在使用 Firestore API,这是一种完全不同的数据库产品。

如果您想要一个允许您对 Firestore 集合进行查询的对象,您应该使用firebase.firestore(),并且您需要导入允许您访问该 API 的库。

为确保您使用的是正确的数据库,请查看Firebase 实时数据库Firestore入门文档。