看到了一些有关此的帖子,但是我没有得到我希望的结果。 计划:将文档ID作为字段传递给该项目。
const ref = db.collection('mycollection').doc();
console.log(ref.id);
db.collection('mycollection').add({
id: ref.id,
name: req.body.name
})
.then(docRef => {
console.log("Document written with ID: ", docRef.id);
})
运行此命令(firebase serve
并通过邮递员发送数据)时, ref.id 和 docRef.id 不匹配,例如:
zR5nJ348OpbwHcyGoojC
info: Document written with ID: Fh2mqfZKpizzW5RIJ0yF
我希望它们能匹配-这对我来说不正确吗?
如果它们不匹配,那么我总是可以对刚刚创建的商品进行更新,但这感觉不必要。
我这样做的原因是,我可以通过直接引用ID轻松地更新或删除项目。但是我愿意接受其他建议,以防万一我弄错了灌木丛。
谢谢
答案 0 :(得分:1)
每次调用doc()
(不带参数)或add(...)
时,Firestore都会创建一个新的文档ID。由于您在代码中都调用了它们,因此最终得到两个单独的ID。诀窍是仅呼叫一个或另一个,例如:
const ref = db.collection('mycollection').doc();
ref.set({
id: ref.id,
name: req.body.name
})