What is Firestore?
- Flutter course
- Advanced
- Lesson 21/69
- 4 min
Learn the collection and document model with Firestore.
What is Firestore?
Firestore is Firebase's NoSQL cloud database; it stores data in a collection and document hierarchy. You access the singleton via FirebaseFirestore.instance. Collections hold documents, and documents hold key-value fields.
final db = FirebaseFirestore.instance;
final ref = db.collection('users').doc('u1');Real-time synchronization means all clients update instantly when data changes.
Collection and document hierarchy
Data is organized as collection > document > field. A collection contains many documents; each document has a unique id. Collections hold documents, and documents hold fields or subcollections.
db.collection('users')
.doc('u1')
.get();Practice Create a document reference
Get db via FirebaseFirestore.instance. Create a document reference with id 'u1' in the 'users' collection and print ref.id.
Starter code
class DocumentReference {
final String id;
DocumentReference(this.id);
}
class CollectionReference {
final String name;
CollectionReference(this.name);
DocumentReference doc(String id) => DocumentReference(id);
}
class FirebaseFirestore {
static final FirebaseFirestore instance = FirebaseFirestore._();
FirebaseFirestore._();
CollectionReference collection(String name) => CollectionReference(name);
}
void main() {
// tekil örnek ile db al
// 'users' koleksiyonunda 'u1' belge referansını oluştur
// ref.id yazdır
}Sample solution
class DocumentReference {
final String id;
DocumentReference(this.id);
}
class CollectionReference {
final String name;
CollectionReference(this.name);
DocumentReference doc(String id) => DocumentReference(id);
}
class FirebaseFirestore {
static final FirebaseFirestore instance = FirebaseFirestore._();
FirebaseFirestore._();
CollectionReference collection(String name) => CollectionReference(name);
}
void main() {
final db = FirebaseFirestore.instance;
final ref = db.collection('users').doc('u1');
print(ref.id);
}Expected output
u1
Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 What does a document represent in Firestore?
- A single data object holding key-value fields Correct answer
- Only a title text
- A user password
- The name of a SQL table
Explanation: A document is a single data object holding key-value fields; it lives inside a collection.
2 Get a collection reference
final col = db.____('users');
final col = db.collection('users');
Explanation: To get a collection reference you use the collection method; the parameter is the collection name.
3 Firestore parts
| Term | Meaning |
|---|---|
FirebaseFirestore.instance |
Singleton instance |
collection |
A set of documents |
doc |
A single document reference |
NoSQL |
Data model |