📜  firestore 生成唯一 id (1)

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

创建唯一ID的Firestore实现方式

在Firestore中,您可以使用 doc() 方法来创建新文档并将其添加到集合中。但文档是不带ID的,Firestore不提供直接的方式来为文档生成唯一的ID。但是,我们可以使用一些技巧来为新文档生成唯一的标识符。

Firestore提供的常见方法是使用Firebase提供的 Firestore Auto-ID Generator。Firestore提供了一个称为autoId()方法的实用程序,该方法可以生成使用58个字符的随机字符串作为ID。这是一种快速、方便且可靠的方法,可用于为新文档生成唯一的ID:

// 为新文档生成唯一ID
const newDocRef = db.collection('collection_name').doc();
const newDocID = newDocRef.id;

另一种方法是使用uuid库。这是一个广泛使用的开源JavaScript库,用于生成唯一标识符。如果您的应用程序依赖于Node.js环境,则可以使用此库。安装uuid

npm install uuid

然后,在Firestore中,您可以使用以下代码来创建一个唯一ID:

const uuid = require('uuid');
const newDocRef = db.collection('collection_name').doc(uuid.v4());

这里生成的ID是一个使用版本4GUID算法生成的随机字符串。

最后,可以使用Firebase的另一个实用程序函数 firebase.firestore.FieldValue.serverTimestamp() 来为文档ID指定时间戳。此实用程序函数将时间戳添加到Firebase Firestore中的文档字段中。

const newDocRef = db.collection('collection_name').doc();
const timestamp = firebase.firestore.FieldValue.serverTimestamp();
newDocRef.set({
  created_at: timestamp,
  // 其他字段
});

可以通过此方法检索文档和字段,并解析服务器时间戳:

newDocRef.get().then((doc) => {
  const data = doc.data();
  const createdAt = data.created_at.toDate();
  // 其他字段
});
结论

这三种方法都是生成唯一ID的好选择:随机使用Firebase内置autoId()方法生成的字符串,使用uuid库的版本4 GUID算法生成的随机字符串或使用服务器时间戳的方式创建的ID。选择其中一种方法并根据您的具体需求为您的Firestore数据库文档构建安全、可靠的应用程序。