【问题标题】:Uncaught TypeError: db.collection is not a function for a real-time database in firebase [duplicate]未捕获的TypeError:db.collection不是firebase中实时数据库的功能[重复]
【发布时间】:2020-05-03 11:31:19
【问题描述】:

当我尝试访问我的收藏时,我收到以下错误。我的 firebase 应用在我的主应用组件中初始化。

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

componentDidMount(){
  if (!firebase.apps.length) {
    firebase.initializeApp(firebaseConfig);
  }
}

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


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);
  });
}

我通过将它包含在 App.js 中来立即渲染这个组件,我不知道这是否会出现问题?

【问题讨论】:

    标签: firebase react-native firebase-realtime-database google-cloud-firestore


    【解决方案1】:

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

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

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

    为确保您使用的是正确的数据库,请查看文档以开始使用 Firebase Realtime Database 和 Firestore。

    【讨论】:

    • 是的,谢谢,我查看的是 Firestore 文档而不是实时文档 :)
    【解决方案2】:

    改变

    const db = firebase.database();
    

    进入这个:

    const db = firebase.firestore();
    

    更多信息Here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      相关资源
      最近更新 更多