Firestore,使用快照获取文档ID

时间:2020-08-27 14:43:53

标签: node.js json firebase google-cloud-firestore snapshot

我正在尝试从firestore中获取收集数据,并将数据保存为JSON格式,现在我可以同时进行,并且每次更改列表时都会发生更新,问题是它不会显示ID字段,因此所有遭受更改的集合都将被保存而没有任何文档ID。我尝试了附件中建议的一些解决方案,但根本没有用。 任何可以帮助我的建议或想法。

Get document id firestore angular

How to get firestore document ID from document snapshot?

const fs =require('fs');
const db = admin.firestore();
var Notebook = db.collection('Notebook').where('itemCFE', '==', '1')
.onSnapshot(querySnapshot => {
  querySnapshot.docChanges().forEach(change => {
    if (change.type === 'modified'){
       console.log('update done',JSON.stringify(change.doc.data()));
       let data =JSON.stringify(change.doc.data());
       fs.writeFileSync('test.json', data, (err) => {
       if (err) throw err;
       console.log('Data Written to file');
       })
     }
   if (change.type === 'removed'){
      console.log('update done',change.doc.data());
   }
 });
});

2 个答案:

答案 0 :(得分:2)

文档始终是ID。在forEach循环中,每个change是一个DocumentChange对象。您可以使用change.doc.id来获取文档的ID。

答案 1 :(得分:0)

如果我正确理解,除了通过执行change.doc.data()通过DocumentChange获取文档数据之外,您还想要获取文档ID。

您需要执行change.doc.id,因为DocumentChange的{​​{3}}属性将返回doc