Mengelola Pengguna di Firebase

Membuat pengguna

Anda dapat membuat pengguna baru dalam project Firebase dengan memanggil metode createUserWithEmailAndPassword, atau dengan membuat pengguna login untuk pertama kalinya menggunakan penyedia identitas gabungan, seperti Login dengan Google atau Login dengan Facebook.

Anda juga dapat membuat pengguna baru yang diautentikasi dengan sandi dari bagian Authentication pada Firebase console, di halaman Pengguna, atau dengan menggunakan Admin SDK.

Mengetahui pengguna yang sedang login

Cara yang direkomendasikan untuk mengetahui pengguna yang sedang login adalah dengan menetapkan observer pada objek Auth:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

Dengan menggunakan observer, Anda memastikan bahwa objek Auth tidak dalam kondisi pertengahan—seperti inisialisasi—saat Anda mencari tahu pengguna saat ini. Saat Anda menggunakan signInWithRedirect, observer onAuthStateChanged menunggu sampai getRedirectResult selesai sebelum memicu.

Anda juga bisa mengetahui pengguna yang sedang login dengan menggunakan properti currentUser. Jika tidak ada pengguna yang sedang login, currentUser bernilai null:

var user = firebase.auth().currentUser;

if (user) {
  // User is signed in.
} else {
  // No user is signed in.
}

Memperoleh profil pengguna

Untuk memperoleh informasi profil pengguna, gunakan properti instance User. Misalnya:

var user = firebase.auth().currentUser;
var name, email, photoUrl, uid, emailVerified;

if (user != null) {
  name = user.displayName;
  email = user.email;
  photoUrl = user.photoURL;
  emailVerified = user.emailVerified;
  uid = user.uid;  // The user's ID, unique to the Firebase project. Do NOT use
                   // this value to authenticate with your backend server, if
                   // you have one. Use User.getToken() instead.
}

Memperoleh informasi profil khusus-penyedia yang terhubung dengan pengguna

Untuk memperoleh informasi profil yang diambil dari penyedia proses login yang terhubung dengan pengguna, gunakan properti providerData. Misalnya:

var user = firebase.auth().currentUser;

if (user != null) {
  user.providerData.forEach(function (profile) {
    console.log("Sign-in provider: " + profile.providerId);
    console.log("  Provider-specific UID: " + profile.uid);
    console.log("  Name: " + profile.displayName);
    console.log("  Email: " + profile.email);
    console.log("  Photo URL: " + profile.photoURL);
  });
}

Mengupdate profil pengguna

Anda dapat mengupdate informasi profil dasar pengguna—yaitu nama tampilan dan URL foto profil pengguna—dengan metode updateProfile. Misalnya:

var user = firebase.auth().currentUser;

user.updateProfile({
  displayName: "Jane Q. User",
  photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

Menyetel alamat email pengguna

Anda dapat menyetel alamat email pengguna dengan metode updateEmail. Misalnya:

var user = firebase.auth().currentUser;

user.updateEmail("user@example.com").then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

Mengirim email verifikasi kepada pengguna

Anda dapat mengirim email verifikasi alamat kepada pengguna dengan metode sendEmailVerification. Misalnya:

var user = firebase.auth().currentUser;

user.sendEmailVerification().then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

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

Anda juga dapat meneruskan status melalui continue URL untuk mengalihkannya kembali ke aplikasi tersebut ketika mengirim email verifikasi.

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

firebase.auth().languageCode = 'fr';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();

Menetapkan sandi pengguna

Anda dapat menyetel sandi pengguna dengan metode updatePassword. Misalnya:

var user = firebase.auth().currentUser;
var newPassword = getASecureRandomPassword();

user.updatePassword(newPassword).then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

Mengirim email setel ulang sandi

Anda dapat mengirim email setel ulang sandi kepada pengguna dengan metode sendPasswordResetEmail. Misalnya:

var auth = firebase.auth();
var emailAddress = "user@example.com";

auth.sendPasswordResetEmail(emailAddress).then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

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

Anda juga bisa meneruskan status melalui continue URL untuk mengalihkan kembali ke aplikasi tersebut ketika mengirim email setel ulang sandi.

Selain itu, Anda dapat melokalkan email setel ulang sandi dengan memperbarui kode bahasa pada instance Auth sebelum mengirim email. Misalnya:

firebase.auth().languageCode = 'de';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();

Anda juga bisa mengirim email setel ulang sandi dari Firebase console.

Menghapus pengguna

Anda dapat menghapus akun pengguna dengan metode delete. Misalnya:

var user = firebase.auth().currentUser;

user.delete().then(function() {
  // User deleted.
}).catch(function(error) {
  // An error happened.
});

Anda juga bisa menghapus pengguna dari bagian Autentikasi pada Firebase console, di halaman Pengguna.

Mengautentikasi ulang pengguna

Beberapa tindakan yang rentan terhadap ancaman keamanan—seperti menghapus akun, menetapkan alamat email primer, dan mengubah sandi—mengharuskan pengguna untuk sudah login baru-baru ini. Jika Anda melakukan salah satu tindakan ini dan pengguna login pada waktu yang sudah lama berlalu, tindakan akan gagal dengan error. Jika hal ini terjadi, autentikasi ulang pengguna dengan mendapatkan kredensial login baru dari pengguna dan meneruskan kredensial tersebut ke reauthenticateWithCredential. Misalnya:

var user = firebase.auth().currentUser;
var credential;

// Prompt the user to re-provide their sign-in credentials

user.reauthenticateAndRetrieveDataWithCredential(credential).then(function() {
  // User re-authenticated.
}).catch(function(error) {
  // An error happened.
});

Mengimpor akun pengguna

Anda dapat mengimpor akun pengguna dari sebuah file ke dalam project Firebase menggunakan perintah auth:import Firebase CLI. Misalnya:

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

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.