Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. 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 memanggil metode createUserWithEmail:password:completion: atau dengan memasukkan pengguna untuk pertama kalinya menggunakan penyedia identitas federasi, 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.

Dapatkan pengguna yang saat ini masuk

Cara yang disarankan untuk mendapatkan pengguna saat ini adalah dengan menyetel listener pada objek Auth:

Cepat

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

Dengan menggunakan listener, Anda memastikan bahwa objek Auth tidak dalam status perantara—seperti inisialisasi—saat Anda mendapatkan pengguna saat ini.

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

Cepat

if Auth.auth().currentUser != nil {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

Objective-C

if ([FIRAuth auth].currentUser) {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

Dapatkan profil pengguna

Untuk mendapatkan informasi profil pengguna, gunakan properti turunan FIRUser . Sebagai contoh:

Cepat

let user = Auth.auth().currentUser
if let user = user {
  // 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 getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

Objective-C

FIRUser *user = [FIRAuth auth].currentUser;
if (user) {
  // 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 getTokenWithCompletion:completion: instead.
  NSString *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

Dapatkan informasi profil khusus penyedia pengguna

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

Cepat

let userInfo = Auth.auth().currentUser?.providerData[indexPath.row]
cell?.textLabel?.text = userInfo?.providerID
// Provider-specific UID
cell?.detailTextLabel?.text = userInfo?.uid

Objective-C

id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row];
cell.textLabel.text = [userInfo providerID];
// Provider-specific UID
cell.detailTextLabel.text = [userInfo uid];

Perbarui profil pengguna

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

Cepat

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = displayName
changeRequest?.commitChanges { error in
  // ...
}

Objective-C

FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest];
changeRequest.displayName = userInput;
[changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

Setel alamat email pengguna

Anda dapat menyetel alamat email pengguna dengan metode updateEmail:completion: Sebagai contoh:

Cepat

Auth.auth().currentUser?.updateEmail(to: email) { error in
  // ...
}

Objective-C

[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

Kirim email verifikasi kepada pengguna

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

Cepat

Auth.auth().currentUser?.sendEmailVerification { error in
  // ...
}

Objective-C

[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

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:

Cepat

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

Objective-C

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

Setel kata sandi pengguna

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

Cepat

Auth.auth().currentUser?.updatePassword(to: password) { error in
  // ...
}

Objective-C

[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

Kirim email pengaturan ulang kata sandi

Anda dapat mengirim email pengaturan ulang kata sandi ke pengguna dengan metode sendPasswordResetWithEmail:completion: Sebagai contoh:

Cepat

Auth.auth().sendPasswordReset(withEmail: email) { error in
  // ...
}

Objective-C

[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

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:

Cepat

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

Objective-C

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

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

Hapus pengguna

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

Cepat

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}

Objective-C

FIRUser *user = [FIRAuth auth].currentUser;

[user deleteWithCompletion:^(NSError *_Nullable error) {
  if (error) {
    // An error happened.
  } else {
    // Account deleted.
  }
}];

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

Cepat

let user = Auth.auth().currentUser
var credential: AuthCredential

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

user?.reauthenticate(with: credential) { error in
  if let error = error {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}

Objective-C

FIRUser *user = [FIRAuth auth].currentUser;
FIRAuthCredential *credential;

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

[user reauthenticateWithCredential:credential completion:^(NSError *_Nullable error) {
  if (error) {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}];

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