Firestore:如何从集合中获取最新的更新文档

时间:2018-07-26 11:28:33

标签: node.js google-cloud-firestore

Firestore database structure

如图所示,chat_test是集合名称,并且我使用随机名称创建了文档。如果发生任何更改,我想访问更新的文档。我需要写什么查询?

这是我的代码。

firestore.collection('chat_test')
.orderBy('updated_at', 'desc')
.limit(1)
.onSnapshot((snapshot) => {
   //console.log('success=>',JSON.stringify(snapshot));

    snapshot.forEach(function(doc) {
     firestore.collection('chat_test/'+doc.id+'/messages').orderBy('message_time', 'desc').limit(1).onSnapshot((snap) => {
        console.log(snap);
        snap.forEach(function(doc) {
            console.log(doc.id,doc.data());
        });
     }, (error) => {            
      console.log('error',error);
    });
    });
}, (error) => {
  console.log('error',error);
});

我在document中添加了update_at新键。还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

不是必须在整个集合上使用onSnapshot,而必须在文档上使用它。我直接从Firestore文档https://firebase.google.com/docs/firestore/query-data/listen#top_of_page

中获取了此信息
db.collection("cities").doc("SF")
    .onSnapshot(function(doc) {
        console.log( " data: ", doc.data());
    });

以上代码随时在集合“城市”中执行文档“ SF”更新。