📅  最后修改于: 2023-12-03 15:30:46.697000             🧑  作者: Mango
在 Firestore 中,当你创建一个新的文档时,会自动生成一个唯一的文档 ID,这个 ID 是基于时间戳和随机值生成的。在某些情况下,你可能需要在创建文档后获取这个 ID,比如需要在其他地方引用这个文档。
下面介绍两种获取新文档 ID 的方法。
在集合中新增文档时,Firestore 提供了 add()
方法,使用这个方法会在增加新文档的同时返回新文档的 ID。下面是一个例子:
const newDocRef = db.collection('myCollection').add({
foo: 'bar',
timestamp: Date.now()
});
// 获取新文档的 ID
const newDocId = newDocRef.id;
以上代码创建了一个名为 myCollection
的集合,并在其中插入一条新文档。插入操作的结果是一个新文档引用,可以从这个引用中获取新文档的 ID。
需要注意的是,这种方法只能在插入新文档时使用。
第二种方法是,在文档上使用 set()
方法来创建新文档,并在操作完成后获取文档 ID。下面是一个例子:
const docRef = db.collection('myCollection').doc();
// 获取新文档的 ID
const newDocId = docRef.id;
docRef.set({
foo: 'bar',
timestamp: Date.now()
});
以上代码创建了一个名为 myCollection
的集合,并使用 doc()
方法创建了一个新文档引用。使用 doc()
方法时没有指定文档 ID,Firestore 会自动生成一个。利用这个引用,我们可以获取新文档的 ID,并在之后的 set()
操作中使用它。
需要注意的是,这种方法也可以用于更新现有文档。
以上两种方法都可以在文档操作完成后获取新文档的 ID。使用哪种方法取决于具体的场景和操作。
总之,Firestore 提供了非常简单、方便的方法来获取新文档的 ID,这对于开发者来说是一件非常好的事情。