📌  相关文章
📜  firestore 获取新文档的 id (1)

📅  最后修改于: 2023-12-03 15:30:46.697000             🧑  作者: Mango

在 Firestore 中获取新文档的 ID

在 Firestore 中,当你创建一个新的文档时,会自动生成一个唯一的文档 ID,这个 ID 是基于时间戳和随机值生成的。在某些情况下,你可能需要在创建文档后获取这个 ID,比如需要在其他地方引用这个文档。

下面介绍两种获取新文档 ID 的方法。

方法一:使用 add() 方法

在集合中新增文档时,Firestore 提供了 add() 方法,使用这个方法会在增加新文档的同时返回新文档的 ID。下面是一个例子:

const newDocRef = db.collection('myCollection').add({
  foo: 'bar',
  timestamp: Date.now()
});

// 获取新文档的 ID
const newDocId = newDocRef.id;

以上代码创建了一个名为 myCollection 的集合,并在其中插入一条新文档。插入操作的结果是一个新文档引用,可以从这个引用中获取新文档的 ID。

需要注意的是,这种方法只能在插入新文档时使用。

方法二:使用 set() 方法

第二种方法是,在文档上使用 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,这对于开发者来说是一件非常好的事情。