📅  最后修改于: 2023-12-03 15:30:46.669000             🧑  作者: Mango
在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数据库文档构建安全、可靠的应用程序。