📅  最后修改于: 2023-12-03 15:38:53.371000             🧑  作者: Mango
在使用 Firebase 数据库时,文档 ID 是很重要的一个概念。文档 ID 是每个文档在集合中的唯一标识符,类似于传统数据库中的主键。在许多情况下,您需要实时访问文档 ID,以便进行一些操作。下面是几种获取 Firebase 文档 ID 的方式。
当您获取文档时,文档对象会自动为您提供一个名为 id
的快捷属性,该属性对应文档的 ID。您可以使用以下代码获取文档 ID:
const db = firebase.firestore();
const docRef = db.collection("my_collection").doc("my_doc");
docRef.get().then((doc) => {
if (doc.exists) {
console.log("Document data:", doc.data());
console.log("Document ID:", doc.id); // 这里是文档 ID
} else {
console.log("No such document!");
}
}).catch((error) => {
console.log("Error getting document:", error);
});
在上面的代码中,我们获取了 my_collection
集合中名为 my_doc
的文档,并打印出了文档的数据和 ID。
您还可以使用快照监听器来监听文档的变化,并从快照中获取文档 ID。这种方法适用于您需要实时访问文档 ID 的情况。以下是一个例子:
const db = firebase.firestore();
const docRef = db.collection("my_collection").doc("my_doc");
docRef.onSnapshot((doc) => {
console.log("Current data: ", doc.data());
console.log("Document ID:", doc.id); // 这里是文档 ID
});
在上面的代码中,我们使用了 onSnapshot
方法来监听 my_collection
集合中名为 my_doc
的文档的快照,并打印出了文档的数据和 ID。
您还可以使用文本查询来获取文档 ID。以下是一个例子:
const db = firebase.firestore();
const docRef = db.collection("my_collection").where("field", "==", "value");
docRef.get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(doc.id); // 这里是文档 ID
});
}).catch((error) => {
console.log("Error getting documents: ", error);
});
在上面的代码中,我们使用了文本查询来获取 my_collection
集合中包含特定字段和值的文档,并打印出了文档的 ID。
这些是获取 Firebase 文档 ID 的几种方式。根据您的实际情况,选择最合适的方式即可。