【发布时间】:2020-05-06 11:44:37
【问题描述】:
这就是我想要实现的目标,我希望我的数据库中的每个文档都有一个唯一的 ID 字段,并且我希望该唯一 ID 与文档 ID 相同。
例子:
documents: data:
eBgdTRE123 id:'eBgdTRE123'
name:'Jhon Doe'
job:'Programmer'
我希望我的数据库有这个结构,现在我有两个想法来实现这个
1:使用云功能并拥有onCreate 监听器,每次有新文档抓取文档并设置 id 字段并更新它,这就是我的做法
exports.addDocIdToField =
functions.firestore.document('collectionname/{docID}').onCreate((snap,context) => {
const id = context.params.docID;
return admin.firestore().collection('collectionname')
.doc(id).set({ id: snap.id }, { merge: true })
.then(() => {
return null;
})
.catch((error) => {
return null;
});
})
2:使用上述方法创建文档。添加文档后立即添加新文档获取新添加的文档并更新其id
它们都有效,但我的问题是我可以依靠这种操作吗?我的意思是如果id 无论如何都是undefined 它可能会在应用程序中进一步导致错误。
或者是否有其他方法可以实现这一点?
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-cloud-functions