You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter/Dart中如何获取Firestore新增文档的ID?

解决Firestore添加文档后获取自动生成ID的问题

我来帮你搞定这个问题!你当前的写法里,await ...set()返回的是void,所以没法从codeRef里拿到文档ID。而且旧版本的documentID属性确实已经被废弃了,现在有更简洁且官方推荐的做法,还能完美避免ID冲突:

正确步骤:

  • 先创建一个文档引用(此时Firestore已经自动生成了唯一的文档ID,完全不用担心冲突)
  • 再调用set方法写入数据
  • 最后直接从文档引用中获取ID并添加到列表

完整代码示例:

// 1. 创建文档引用,此时已生成全局唯一ID
final docRef = FirebaseFirestore.instance.collection('codes').doc();

// 2. 将数据写入该文档
await docRef.set({ 'name': _codeName, });

// 3. 获取自动生成的ID并添加到目标列表
yourTargetList.add(docRef.id);

原理说明:

Firestore的doc()方法如果不传参数,会立即生成一个全局唯一的文档ID并返回对应的引用——这个ID的生成算法经过优化,冲突概率可以忽略不计。你不需要等到数据写入完成,就能拿到这个ID,既满足了你的需求,又遵循了最新的API规范。

内容的提问来源于stack exchange,提问作者Eind997

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 06:28:10