我正在尝试从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());
}
});
});
答案 0 :(得分:2)
文档始终是ID。在forEach循环中,每个change
是一个DocumentChange对象。您可以使用change.doc.id
来获取文档的ID。
答案 1 :(得分:0)
如果我正确理解,除了通过执行change.doc.data()
通过DocumentChange
获取文档数据之外,您还想要获取文档ID。
您需要执行change.doc.id
,因为DocumentChange
的{{3}}属性将返回doc
。