📅  最后修改于: 2023-12-03 15:30:46.749000             🧑  作者: Mango
Firebase是一个后端服务平台,除了提供实时数据库,还提供云存储,身份认证,分析等服务。其中,Firestore是它的一项核心服务,提供了实时同步的NoSQL文档数据库,也是Firebase后端服务的数据存储引擎之一。
Firestore基于文档(document)、集合(collection)和子集(subcollection)的层次结构,将数据组织进行了优化,以适应各种数据模型的需求。这种数据结构的设计让Firestore变得非常灵活,并且可以扩展到非常大的规模。
Firestore的基本存储单位是文档,一个文档可以包含任意数量的键-值对。文档的唯一标识符是自动生成的文档ID,也可以手动指定,这个ID必须唯一。
文档的结构可以是嵌套的,也就是说,一个文档可以包含另外一个文档(子文档)。这种文档结构的设计让我们可以实现非常灵活和易于扩展的数据模型。
Firestore中的文档可以通过以下方式来创建:
const db = firebase.firestore();
const docRef = db.collection('users').doc('user-id');
const setDoc = docRef.set({
name: 'John Doe',
age: 25
});
上述代码中,我们创建了一个名为users的集合,以及一个名为user-id的文档,然后向该文档中添加了两个键-值对:name和age。
Firestore中的集合是一组文档的容器,集合可以包含任意数量的文档。集合的结构类似于关系型数据库中的表。
集合的结构是扁平的,即集合中的文档都是平级的,而不是相互嵌套的。但是,集合的文档可以引用其他集合中的文档,以实现多对多关系。
Firestore中的集合可以通过以下方式来创建:
const db = firebase.firestore();
const collectionRef = db.collection('users');
上述代码中,我们创建了一个名为users的集合。
Firestore中的子集是一种特殊的集合,它是某个文档中的一组文档的容器,子集可以包含任意数量的文档。
子集的结构与集合的结构类似,都是扁平的。但是,子集的文档也可以引用其他集合中的文档,以实现多对多关系。
Firestore中的子集可以通过以下方式来创建:
const db = firebase.firestore();
const docRef = db.collection('users').doc('user-id');
const subcollectionRef = docRef.collection('favorites');
上述代码中,我们创建了一个名为user-id的文档,以及一个名为favorites的子集。
Firestore中的数据结构是以文档、集合和子集为基本单位来组织和管理数据的。这种数据结构的设计让Firestore变得非常灵活和易于扩展,适合各种不同的应用场景。如果你需要在Firebase中使用NoSQL数据库,Firestore是一个非常不错的选择。