Tujuan Pembelajaran
- Menjelaskan konsep autentikasi pengguna.
- Menggunakan firebase_auth untuk mendaftar dengan email.
- Mengimplementasikan login email dan password.
- Mengelola state login dan alur keluar.
Uraian Materi
Autentikasi adalah pintu masuk ke fitur pribadi pengguna. Layanan Firebase Authentication menyediakan pendaftaran dan masuk dengan email/password, serta berbagai penyedia lain seperti Google, tanpa menulis backend.
Registrasi Email/Password
final auth = FirebaseAuth.instance;
try {
await auth.createUserWithEmailAndPassword(
email: email,
password: password,
);
} on FirebaseAuthException catch (e) {
// tampilkan pesan dari e.code
}Login dan Logout
await auth.signInWithEmailAndPassword(
email: email,
password: password,
);
await auth.signOut();Operasi autentikasi bersifat async dan dapat melempar FirebaseAuthException; kode error seperti ‘email-already-in-use’ atau ‘wrong-password’ dipetakan ke pesan yang ramah pengguna.
Memantau Perubahan Status Login
Untuk mengetahui apakah pengguna sudah login, gunakan stream auth.authStateChanges(). Kombinasi dengan StreamBuilder menampilkan halaman login bila belum terautentikasi, atau halaman utama bila sudah – pola pemindah rute otomatis.
Menutup Alur Autentikasi
Peserta membangun halaman registrasi dan login, memakai validasi ulang di sisi klien (dari materi form), lalu mengarahkan ke halaman utama setelah sukses. Modul ini menutup dasar keamanan akses aplikasi.
Mengelola Pesan FirebaseAuthException
Setiap kegagalan autentikasi membawa kode seperti weak-password dan invalid-email. Memetakan kode tersebut ke pesan ramah memberi pengalaman yang jelas dan membantu pengguna memperbaiki inputnya. Peserta menulis pemetaan kesalahan secara sistematis.
Menyimpan Pengguna di Firestore
Selain akun autentikasi, data profil pengguna (nama, foto, alamat) sebaiknya disimpan pada koleksi tersendiri di Firestore dengan ID dokumen sama dengan uid pengguna. Pola ini menghubungkan Authentication dengan Firestore dan menjadi dasar materi integrasi berikutnya.
Alur Keluar dan Manajemen Sesi
Tombol keluar memanggil signOut lalu mengarahkan kembali ke halaman login. Pemantauan status login secara otomatis memastikan sesi berjalan aman dan halaman yang sensitif hanya dapat diakses pengguna terautentikasi.
Menutup Materi Autentikasi
Dengan alur registrasi, login, logout, dan pemantauan status yang lengkap, peserta membangun fondasi keamanan aplikasi. Konsep ini berlaku tidak hanya untuk email/password tetapi juga penyedia lain, sehingga penguasaannya memberi nilai tambah saat memperluas aplikasi.
Aktivitas Pembelajaran
- Menjelaskan konsep Firebase Authentication.
- Membangun halaman registrasi email/password.
- Membangun halaman login dan alur keluar.
- Menggunakan authStateChanges untuk pergantian halaman.
Tugas dan Latihan
- Buat alur registrasi dan login lengkap dengan Firebase Auth.
- Tampilkan pesan error yang ramah untuk setiap kode kesalahan.
- Terapkan pergantian halaman otomatis berdasarkan status login.
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.

