Tujuan Pembelajaran
- Menjelaskan konsep koleksi dan dokumen Firestore.
- Menambahkan data ke Firestore.
- Membaca dan mendengarkan perubahan data secara real-time.
- Memperbarui dan menghapus dokumen.
Uraian Materi
Cloud Firestore adalah database dokumen noSQL yang sinkron secara real-time. Data tersimpan dalam koleksi (kumpulan dokumen) dan dokumen (unit data berupa pasangan field), mengikuti struktur JSON yang fleksibel.
Menambah (Set/Add)
Untuk koleksi barang:
final db = FirebaseFirestore.instance;
final ref = await db.collection('barang').add({
'nama': 'Laptop',
'harga': 8000000,
'stok': 5,
});Bila perlu id tertentu gunakan method set dengan id dokumen pilihan.
Membaca dan Mendengar Perubahan
Firestore unggul pada pembaruan real-time. Method snapshots() mengembalikan stream yang terus memberi informasi terbaru setiap ada perubahan di database:
db.collection('barang')
.orderBy('harga', descending: true)
.snapshots()
.listen((snapshot) {
final data = snapshot.docs
.map((d) => d.data()).toList();
// perbarui state
});Kombinasi dengan StreamBuilder membuat daftar memperbarui dirinya sendiri tanpa muat ulang manual – kekuatan utama Firestore.
Memperbarui dan Menghapus
await db.collection('barang')
.doc(docId).update({'harga': 9000000});
await db.collection('barang')
.doc(docId).delete();Latihan Penutup
Peserta membangun CRUD data berbasis Firestore secara end-to-end, menerapkan pola stream dan memastikan data tersinkron antar perangkat.
Struktur Dokumen yang Fleksibel
Berbeda dengan tabel yang kaku, dokumen Firestore dapat memiliki field berbeda antara satu dengan lainnya, sehingga cocok untuk data yang berkembang. Walaupun fleksibel, konsistensi nama field tetap dijaga agar kode mudah dipetakan.
Menggunakan Ordering dan Filtering
Query pada Firestore mendukung pengurutan dan penyaringan, misal menampilkan produk dengan harga tertinggi atau hanya barang stok tersedia. Properti orderBy dan where meningkatkan kegunaan daftar tanpa menarik seluruh data lalu menyaring di kode.
Mengelola Primary Key Dokumen
Setiap dokumen memiliki ID unik. ID dapat dihasilkan otomatis oleh Firestore atau disesuaikan, misal setara dengan user id pengguna. Pengelolaan ID yang tepat memudahkan pembaruan dan penghapusan dokumen tertentu.
Uji Coba Sinkronisasi Multi-Perangkat
Karena pembaruan real-time, data yang diubah di satu perangkat otomatis tampil di perangkat lain. Peserta membuktikan hal ini dengan menjalankan aplikasi di dua perangkat atau emulator sekaligus, memperkuat pemahaman keunggulan Firestore dibanding penyimpanan lokal.
Aktivitas Pembelajaran
- Menjelaskan struktur koleksi dan dokumen.
- Menambahkan dan membaca data Firestore.
- Menerapkan snapshots untuk pembaruan real-time.
- Melakukan update dan delete dokumen.
Tugas dan Latihan
- Bangun CRUD produk berbasis Firestore di aplikasi Anda.
- Tampilkan daftar yang memperbarui otomatis saat data berubah.
- Implementasikan pencarian sederhana berbasis query Firestore.
Evaluasi
Evaluasi dilakukan melalui pengamatan hasil praktikum, kuis singkat di akhir pertemuan, dan pemantauan proyek. Peserta yang belum mencapai indikator tertentu diberikan remedial melalui bimbingan ulang dan latihan tambahan pada pertemuan berikutnya.
Panduan umum praktik, catatan belajar, dan refleksi tersedia di Panduan Belajar Kribbi Study.

