firebase / firestore docs查询不起作用 - javascript

时间:2017-10-06 14:19:35

标签: javascript firebase google-cloud-firestore

由于firestore是新的,我在使用它时遇到了问题。

我必须获得所有用户收藏并遍历它。但它没有用。

db.collection("users").get().then(function(querySnapshot){
      console.log(querySnapshot.data());
});

它说:

  

querySnapshot.data不是函数

以下代码:

callFireBase(mobileToCheck){
        db.collection("users").where("mobile_no", '==', mobileToCheck).get().then(function(querySnapshot){
            if (querySnapshot.exists) {
                var userData = querySnapshot.data();
                var userId = querySnapshot.id;
                console.log(mobileToCheck + "Exist In DB");
            }else{
                console.log(mobileToCheck + "Do Not Exist In DB");
            }
        });
}

始终打印

  

923052273575数据库中不存在

即使存在,请参阅以下图像以供参考。在docs,他们告诉我(我已经习惯了)。

enter image description here

2 个答案:

答案 0 :(得分:8)

看起来想要在文档集合上调用.data(),而不是一个文档。请查看此代码是否有效:

db.collection("users").get().then(function(querySnapshot){
  querySnapshot.forEach(doc => {
     console.log(doc.data());
  });
}).catch(err => {
   console.log('Error getting documents', err);
});

答案 1 :(得分:0)

您应先使用docs.map,然后再使用doc.data()。这是使用async await语法在Firestore中完成的方法

import firebase from 'react-native-firebase'

async fetchTop() {
  const ref = firebase.firestore().collection('people')
  const snapshot = await ref.orderBy('point').limit(30).get()
  return snapshot.docs.map((doc) => {
    return doc.data()
  })
}