首页 > 解决方案 > Firebase 查询每次返回不同的结果

问题描述

我有这个对 firebase 数据库的请求。我希望它返回引号集合中的所有记录。但是,它每次都返回一组不同的记录(包括不同的总行数)。我需要做什么才能一致地“导出”集合中的所有记录?

db.collection("quotes").get()
.then(snapshot => {
  console.log(snapshot);

  let snapshotArray = [];
  snapshot.forEach(doc => {
    const data = doc.data();
    snapshotArray.push(data);
  });


  return res.status(200).send(snapshotArray.length)


})
.catch(error => {
  console.log(error);
  res.status(500).send(error);
});

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


如果您想获取一份文档的数据,您必须知道它的名称。您应该检查它是否也存在:

var docRef = db.collection("cities").doc("SF");

docRef.get().then(function(doc) {
if (doc.exists) {
    console.log("Document data:", doc.data());
} else {
    // doc.data() will be undefined in this case
    console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});

如果你想要一个像 ID 这样的保存字段,你必须这样写:

console.log("Document data:", doc.data().id); // only saved ID gets printed

推荐阅读