CodeBlanks Logo Icon CodeBlanks

What is Firestore?

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

main.dart
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

main.dart
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

Question
final col = db.____('users');
Answer
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

All lessons in Advanced