如何在Firebase / Google Cloud Firestore的集合中获取最新添加的文档?

时间:2018-09-18 08:49:36

标签: javascript firebase google-cloud-firestore

我想使用Web / JS平台检索添加到集合中的最新文档。

  1. 我如何做到这一点?
  2. 保存数据时是否需要附加时间戳?
  3. 服务器是否在后台doc.add()上自动添加时间戳?
https://firebase.google.com/docs/firestore/query-data/get-data
db
  .collection("cities")
  // .orderBy('added_at', 'desc') // fails
  // .orderBy('created_at', 'desc') // fails
  .limit(1)
  .get()
  .then(querySnapshot => {
    querySnapshot.forEach(doc => {
      console.log(doc.id, " => ", doc.data());
      // console.log('timestamp: ', doc.timestamp()); // throws error (not a function)
      // console.log('timestamp: ', doc.get('created_at')); // undefined
    });
  });

1 个答案:

答案 0 :(得分:1)

您可以尝试使用onSnapshot方法来监听更改事件:

db.collection("cities").where("state", "==", "CA")
    .onSnapshot(function(snapshot) {
        snapshot.docChanges().forEach(function(change) {
            if (change.type === "added") {
                console.log("New city: ", change.doc.data());
                //do what you want here!
                //function for rearranging or sorting etc.
            }
            if (change.type === "modified") {
                console.log("Modified city: ", change.doc.data());
            }
            if (change.type === "removed") {
                console.log("Removed city: ", change.doc.data());
            }
        });
    });

来源:https://firebase.google.com/docs/firestore/query-data/listen