Lihat yang baru dari Firebase di Google I/O 2022. Pelajari lebih lanjut

Kelola Pengguna di Firebase

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Buat pengguna

Anda membuat pengguna baru di proyek Firebase dengan empat cara:

  • Panggil metode createUserWithEmailAndPassword() .
  • Masuk sebagai pengguna untuk pertama kalinya menggunakan penyedia identitas gabungan , seperti Google Sign-In, Facebook Login, atau Apple.

Anda juga dapat membuat pengguna baru yang diautentikasi dengan sandi dari bagian Otentikasi di Firebase console , di halaman Pengguna.

Dapatkan profil pengguna

Untuk mendapatkan informasi profil pengguna, gunakan properti User . Ada tiga cara untuk mendapatkan objek User yang mewakili pengguna saat ini:

  • Aliran authStateChanges , idTokenChanges dan userChanges : pendengar Anda akan menerima User saat ini, atau null jika tidak ada pengguna yang diautentikasi:

    FirebaseAuth.instance
      .authStateChanges()
      .listen((User? user) {
        if (user != null) {
          print(user.uid);
        }
      });
    

    Saat aplikasi dimulai, suatu peristiwa akan diaktifkan setelah kredensial pengguna (jika ada) dari penyimpanan lokal telah dipulihkan, artinya listener Anda selalu dipanggil saat status pengguna diinisialisasi. Kemudian, setiap kali status autentikasi berubah, peristiwa baru akan dimunculkan dengan status pengguna yang diperbarui.

    Dengan mendengarkan status autentikasi, Anda dapat membuat antarmuka pengguna yang bereaksi terhadap perubahan ini dalam status autentikasi.

  • Objek UserCredential dikembalikan oleh metode otentikasi ( signIn -): objek UserCredential memiliki properti user dengan User saat ini :

    final userCredential =
        await FirebaseAuth.instance.signInWithCredential(credential);
    final user = userCredential.user;
    print(user?.uid);
    
  • Properti currentUser dari instance FirebaseAuth : jika Anda yakin pengguna saat ini masuk, Anda dapat mengakses User dari properti currentUser :

    if (FirebaseAuth.instance.currentUser != null) {
      print(FirebaseAuth.instance.currentUser?.uid);
    }
    

    Pengguna currentUser ini dapat menjadi null karena dua alasan:

    • Pengguna tidak masuk.
    • Objek auth belum selesai diinisialisasi. Jika Anda menggunakan listener untuk melacak status masuk pengguna, Anda tidak perlu menangani kasus ini.

Dapatkan informasi profil khusus penyedia pengguna

Untuk mendapatkan informasi profil yang diambil dari penyedia masuk yang ditautkan ke pengguna, gunakan properti providerData . Sebagai contoh:

if (user != null) {
    for (final providerProfile in user.providerData) {
        // ID of the provider (google.com, apple.com, etc.)
        final provider = providerProfile.providerId;

        // UID specific to the provider
        final uid = providerProfile.uid;

        // Name, email address, and profile photo URL
        final name = providerProfile.displayName;
        final emailAddress = providerProfile.email;
        final profilePhoto = providerProfile.photoURL;
    }
}

Perbarui profil pengguna

Anda dapat memperbarui informasi profil dasar pengguna—nama tampilan dan URL foto profil pengguna—dengan metode update . Sebagai contoh:

await user?.updateDisplayName("Jane Q. User");
await user?.updatePhotoURL("https://example.com/jane-q-user/profile.jpg");

Setel alamat email pengguna

Anda dapat menyetel alamat email pengguna dengan metode updateEmail() . Sebagai contoh:

await user?.updateEmail("janeq@example.com");

Kirim email verifikasi kepada pengguna

Anda dapat mengirim email verifikasi alamat ke pengguna dengan metode sendEmailVerification() . Sebagai contoh:

await user?.sendEmailVerification();

Anda dapat menyesuaikan template email yang digunakan di bagian Otentikasi di Firebase console , di halaman Template Email. Lihat Template Email di Pusat Bantuan Firebase.

Dimungkinkan juga untuk meneruskan status melalui URL lanjutan untuk mengarahkan kembali ke aplikasi saat mengirim email verifikasi.

Selain itu, Anda dapat melokalkan email verifikasi dengan memperbarui kode bahasa pada instance Auth sebelum mengirim email. Sebagai contoh:

await FirebaseAuth.instance.setLanguageCode("fr");
await user?.sendEmailVerification();

Setel kata sandi pengguna

Anda dapat menyetel kata sandi pengguna dengan metode updatePassword() . Sebagai contoh:

await user?.updatePassword(newPassword);

Kirim email pengaturan ulang kata sandi

Anda dapat mengirim email pengaturan ulang kata sandi ke pengguna dengan metode sendPasswordResetEmail() . Sebagai contoh:

await FirebaseAuth.instance
    .sendPasswordResetEmail(email: "user@example.com");

Anda dapat menyesuaikan template email yang digunakan di bagian Otentikasi di Firebase console , di halaman Template Email. Lihat Template Email di Pusat Bantuan Firebase.

Dimungkinkan juga untuk meneruskan status melalui URL lanjutan untuk mengarahkan kembali ke aplikasi saat mengirim email pengaturan ulang kata sandi.

Selain itu, Anda dapat melokalkan email pengaturan ulang kata sandi dengan memperbarui kode bahasa pada instance Auth sebelum mengirim email. Sebagai contoh:

await FirebaseAuth.instance.setLanguageCode("fr");

Anda juga dapat mengirim email penyetelan ulang sandi dari Firebase console.

Hapus pengguna

Anda dapat menghapus akun pengguna dengan metode delete() . Sebagai contoh:

await user?.delete();

Anda juga dapat menghapus pengguna dari bagian Otentikasi di Firebase console , di halaman Pengguna.

Mengautentikasi ulang pengguna

Beberapa tindakan sensitif keamanan—seperti menghapus akun , menyetel alamat email utama , dan mengubah sandi —mengharuskan pengguna baru saja masuk. Jika Anda melakukan salah satu tindakan ini, dan pengguna masuk terlalu lama, tindakan gagal dan melempar FirebaseAuthException dengan kode requires-recent-login . Jika ini terjadi, autentikasi ulang pengguna dengan mendapatkan kredensial masuk baru dari pengguna dan meneruskan kredensial ke reauthenticate . Sebagai contoh:

// Prompt the user to re-provide their sign-in credentials.
// Then, use the credentials to reauthenticate:
await user?.reauthenticateWithCredential(credential);

Impor akun pengguna

Anda dapat mengimpor akun pengguna dari file ke proyek Firebase Anda dengan menggunakan perintah auth:import dari Firebase CLI. Sebagai contoh:

firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14