firestore 文档 ID 和用户创建的名为 id 的字段
firestore document id and user created field called id
我正在处理一个 angular 8 项目和包含多个文档的 firestore 集合。每个文档都有一个名为 id
的字段。当我使用大括号插值显示文档中的 ID(类似于 {{data.id}}
)时,它始终显示自动生成的文档 ID,而不是文档中用户创建的 ID 字段。其他文档值如名称被正确获取(例如 {{data.name}}
)。如何获得我想要的 id 值而不是文档 id?
提前谢谢你。
如果您使用默认的 node.js Firestore SDK,您可以按如下方式进行操作:
const doc = await db.collection('mycollection').doc('XXXXXX').get();
console.log(doc.id) // returns default Firestore document id
console.log(doc.data().id) // returns the value of documents field id
据我所知,Angularfire2 库对文档进行包装和转换,这可能是导致文档 ID 字段被 Firestore UUID 文档 ID 覆盖的原因。看来,如果您使用 valueChanges method metadata is trimmed and you should be able to access the id field. If you're using the SnapshotChanges 方法,您可能可以破解一些东西。很抱歉无法 post 实际的代码解决方案,但希望这能有所帮助。
我正在处理一个 angular 8 项目和包含多个文档的 firestore 集合。每个文档都有一个名为 id
的字段。当我使用大括号插值显示文档中的 ID(类似于 {{data.id}}
)时,它始终显示自动生成的文档 ID,而不是文档中用户创建的 ID 字段。其他文档值如名称被正确获取(例如 {{data.name}}
)。如何获得我想要的 id 值而不是文档 id?
提前谢谢你。
如果您使用默认的 node.js Firestore SDK,您可以按如下方式进行操作:
const doc = await db.collection('mycollection').doc('XXXXXX').get();
console.log(doc.id) // returns default Firestore document id
console.log(doc.data().id) // returns the value of documents field id
据我所知,Angularfire2 库对文档进行包装和转换,这可能是导致文档 ID 字段被 Firestore UUID 文档 ID 覆盖的原因。看来,如果您使用 valueChanges method metadata is trimmed and you should be able to access the id field. If you're using the SnapshotChanges 方法,您可能可以破解一些东西。很抱歉无法 post 实际的代码解决方案,但希望这能有所帮助。