Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

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 memanggil metode createUserWithEmailAndPassword atau dengan memasukkan pengguna untuk pertama kalinya menggunakan penyedia identitas gabungan, seperti Google Sign-In atau Facebook Login .

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

Dapatkan pengguna yang saat ini masuk

Cara yang disarankan untuk mendapatkan pengguna saat ini adalah dengan menetapkan pengamat pada objek Auth:

Web version 9

import { getAuth, onAuthStateChanged } from "firebase/auth";

const auth = getAuth();
onAuthStateChanged(auth, (user) => {
  if (user) {
    // User is signed in, see docs for a list of available properties
    // https://firebase.google.com/docs/reference/js/firebase.User
    const uid = user.uid;
    // ...
  } else {
    // User is signed out
    // ...
  }
});

Web version 8

firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    // User is signed in, see docs for a list of available properties
    // https://firebase.google.com/docs/reference/js/firebase.User
    var uid = user.uid;
    // ...
  } else {
    // User is signed out
    // ...
  }
});

Dengan menggunakan pengamat, Anda memastikan bahwa objek Auth tidak dalam status perantara—seperti inisialisasi—saat Anda mendapatkan pengguna saat ini. Saat Anda menggunakan signInWithRedirect , pengamat onAuthStateChanged menunggu hingga getRedirectResult sebelum memicu.

Anda juga bisa mendapatkan pengguna yang saat ini masuk dengan menggunakan properti currentUser . Jika pengguna tidak masuk, currentUser adalah null:

Web version 9

import { getAuth } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

if (user) {
  // User is signed in, see docs for a list of available properties
  // https://firebase.google.com/docs/reference/js/firebase.User
  // ...
} else {
  // No user is signed in.
}

Web version 8

const user = firebase.auth().currentUser;

if (user) {
  // User is signed in, see docs for a list of available properties
  // https://firebase.google.com/docs/reference/js/firebase.User
  // ...
} else {
  // No user is signed in.
}

Dapatkan profil pengguna

Untuk mendapatkan informasi profil pengguna, gunakan properti dari instance User . Sebagai contoh:

Web version 9

import { getAuth } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;
if (user !== null) {
  // The user object has basic properties such as display name, email, etc.
  const displayName = user.displayName;
  const email = user.email;
  const photoURL = user.photoURL;
  const emailVerified = user.emailVerified;

  // 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.
  const uid = user.uid;
}

Web version 8

const user = firebase.auth().currentUser;
if (user !== null) {
  // The user object has basic properties such as display name, email, etc.
  const displayName = user.displayName;
  const email = user.email;
  const photoURL = user.photoURL;
  const emailVerified = user.emailVerified;

  // 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.getIdToken() instead.
  const uid = user.uid;
}

Dapatkan informasi profil khusus penyedia pengguna

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

Web version 9

import { getAuth } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

if (user !== null) {
  user.providerData.forEach((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);
  });
}

Web version 8

const user = firebase.auth().currentUser;

if (user !== null) {
  user.providerData.forEach((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);
  });
}

Perbarui profil pengguna

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

Web version 9

import { getAuth, updateProfile } from "firebase/auth";
const auth = getAuth();
updateProfile(auth.currentUser, {
  displayName: "Jane Q. User", photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(() => {
  // Profile updated!
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});

Web version 8

const user = firebase.auth().currentUser;

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

Setel alamat email pengguna

Anda dapat mengatur alamat email pengguna dengan metode updateEmail . Sebagai contoh:

Web version 9

import { getAuth, updateEmail } from "firebase/auth";
const auth = getAuth();
updateEmail(auth.currentUser, "user@example.com").then(() => {
  // Email updated!
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});

Web version 8

const user = firebase.auth().currentUser;

user.updateEmail("user@example.com").then(() => {
  // Update successful
  // ...
}).catch((error) => {
  // An error occurred
  // ...
});

Kirim email verifikasi kepada pengguna

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

Web version 9

import { getAuth, sendEmailVerification } from "firebase/auth";

const auth = getAuth();
sendEmailVerification(auth.currentUser)
  .then(() => {
    // Email verification sent!
    // ...
  });

Web version 8

firebase.auth().currentUser.sendEmailVerification()
  .then(() => {
    // Email verification sent!
    // ...
  });

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:

Web version 9

import { getAuth } from "firebase/auth";

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

Web version 8

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

Setel kata sandi pengguna

Anda dapat mengatur kata sandi pengguna dengan metode updatePassword . Sebagai contoh:

Web version 9

import { getAuth, updatePassword } from "firebase/auth";

const auth = getAuth();

const user = auth.currentUser;
const newPassword = getASecureRandomPassword();

updatePassword(user, newPassword).then(() => {
  // Update successful.
}).catch((error) => {
  // An error ocurred
  // ...
});

Web version 8

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

user.updatePassword(newPassword).then(() => {
  // Update successful.
}).catch((error) => {
  // An error ocurred
  // ...
});

Kirim email pengaturan ulang kata sandi

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

Web version 9

import { getAuth, sendPasswordResetEmail } from "firebase/auth";

const auth = getAuth();
sendPasswordResetEmail(auth, email)
  .then(() => {
    // Password reset email sent!
    // ..
  })
  .catch((error) => {
    const errorCode = error.code;
    const errorMessage = error.message;
    // ..
  });

Web version 8

firebase.auth().sendPasswordResetEmail(email)
  .then(() => {
    // Password reset email sent!
    // ..
  })
  .catch((error) => {
    var errorCode = error.code;
    var errorMessage = error.message;
    // ..
  });

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:

Web version 9

import { getAuth } from "firebase/auth";

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

Web version 8

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

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

Hapus pengguna

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

Web version 9

import { getAuth, deleteUser } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

deleteUser(user).then(() => {
  // User deleted.
}).catch((error) => {
  // An error ocurred
  // ...
});

Web version 8

const user = firebase.auth().currentUser;

user.delete().then(() => {
  // User deleted.
}).catch((error) => {
  // An error ocurred
  // ...
});

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 dengan kesalahan. Jika hal ini terjadi, autentikasi ulang pengguna dengan mendapatkan kredensial masuk baru dari pengguna dan meneruskan kredensial tersebut ke reauthenticateWithCredential . Sebagai contoh:

Web version 9

import { getAuth, reauthenticateWithCredential } from "firebase/auth";

const auth = getAuth();
const user = auth.currentUser;

// TODO(you): prompt the user to re-provide their sign-in credentials
const credential = promptForCredentials();

reauthenticateWithCredential(user, credential).then(() => {
  // User re-authenticated.
}).catch((error) => {
  // An error ocurred
  // ...
});

Web version 8

const user = firebase.auth().currentUser;

// TODO(you): prompt the user to re-provide their sign-in credentials
const credential = promptForCredentials();

user.reauthenticateWithCredential(credential).then(() => {
  // User re-authenticated.
}).catch((error) => {
  // An error occurred
  // ...
});

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