Firestore,使用快照获取文档ID
Firestore, get the document ID using snapshot
我正在尝试从 firestore 获取收集数据,并将该数据保存为 JSON 格式,现在我可以同时执行这两项操作,每次有更改我的列表都会更新,问题是它没有显示 ID 字段,因此所有发生更改的集合都在没有任何文档 ID 的情况下保存。我尝试了附件 post 中建议的一些解决方案,但它根本不起作用。
任何可以帮助我的建议或想法。
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());
}
});
});
如果我理解正确的话,除了通过DocumentChange
获取文档的数据外,还需要通过change.doc.data()
获取文档ID。
你需要做 change.doc.id
,因为 doc
property of a DocumentChange
returns a QueryDocumentSnapshot
。
文件总是一个 ID。在 forEach 循环中,每个 change
都是一个 DocumentChange 对象。您可以使用 change.doc.id
.
获取文档的 ID
我正在尝试从 firestore 获取收集数据,并将该数据保存为 JSON 格式,现在我可以同时执行这两项操作,每次有更改我的列表都会更新,问题是它没有显示 ID 字段,因此所有发生更改的集合都在没有任何文档 ID 的情况下保存。我尝试了附件 post 中建议的一些解决方案,但它根本不起作用。 任何可以帮助我的建议或想法。
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());
}
});
});
如果我理解正确的话,除了通过DocumentChange
获取文档的数据外,还需要通过change.doc.data()
获取文档ID。
你需要做 change.doc.id
,因为 doc
property of a DocumentChange
returns a QueryDocumentSnapshot
。
文件总是一个 ID。在 forEach 循环中,每个 change
都是一个 DocumentChange 对象。您可以使用 change.doc.id
.