Melakukan Autentikasi dengan Firebase Menggunakan Akun Berbasis Sandi di Flutter

Anda dapat menggunakan Firebase Authentication untuk mengizinkan pengguna melakukan autentikasi dengan Firebase menggunakan alamat email dan sandi.

Sebelum memulai

  1. Jika Anda belum melakukannya, ikuti langkah-langkah di panduan Memulai.

  2. Aktifkan login dengan Email/Sandi:

    • Di bagian Authentication Firebase console, buka halaman Sign in method.
    • Dari halaman Sign in method, aktifkan metode Email/password sign-in, lalu klik Save.

Membuat akun berbasis sandi

Untuk membuat akun pengguna baru dengan sandi, panggil metode createUserWithEmailAndPassword():

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

Biasanya, Anda akan melakukannya dari layar pendaftaran aplikasi. Ketika pengguna baru mendaftar menggunakan formulir pendaftaran aplikasi, selesaikan langkah-langkah validasi akun baru yang diwajibkan oleh aplikasi, seperti memverifikasi bahwa sandi akun baru tersebut telah diketik dengan benar dan memenuhi persyaratan kerumitan.

Jika akun baru berhasil dibuat, pengguna juga akan diproses agar login. Jika Anda memproses perubahan dalam status autentikasi, peristiwa baru akan dikirim ke pemroses Anda.

Sebagai tindak lanjut untuk membuat akun baru, Anda dapat Memverifikasi alamat email pengguna.

Memproses login pengguna dengan alamat email dan sandi

Langkah-langkah untuk membuat agar pengguna login dengan sandi mirip dengan langkah-langkah untuk membuat akun baru. Dari layar login aplikasi, panggil signInWithEmailAndPassword():

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

Langkah berikutnya

Setelah pengguna membuat akun baru, akun ini akan disimpan sebagai bagian dari project Firebase Anda, dan dapat digunakan untuk mengidentifikasi pengguna di setiap aplikasi dalam project, terlepas dari metode login yang digunakan pengguna.

Di aplikasi, Anda bisa mendapatkan informasi profil dasar pengguna dari objek User. Baca bagian Mengelola Pengguna.

Di Aturan Keamanan Firebase Realtime Database dan Cloud Storage, Anda bisa mendapatkan ID pengguna unik milik pengguna yang login dari variabel auth, dan menggunakannya untuk mengontrol data apa saja yang dapat diakses oleh pengguna.

Anda dapat mengizinkan pengguna untuk login ke aplikasi menggunakan beberapa penyedia autentikasi dengan menautkan kredensial penyedia autentikasi) ke akun pengguna yang ada.

Untuk memproses logout pengguna, panggil signOut():

await FirebaseAuth.instance.signOut();