Buat pengguna
Anda membuat pengguna baru di proyek Firebase dengan memanggil metode createUser
atau dengan memasukkan pengguna untuk pertama kali menggunakan penyedia identitas federasi, seperti Google Sign-In atau Facebook Login .
Anda juga dapat membuat pengguna baru yang diautentikasi dengan kata sandi dari bagian Otentikasi di konsol Firebase , di halaman Pengguna.
Dapatkan pengguna yang saat ini masuk
Cara yang disarankan untuk mendapatkan pengguna saat ini adalah dengan menyetel pendengar 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 pendengar, Anda memastikan bahwa objek Auth tidak dalam keadaan perantara—seperti inisialisasi—ketika Anda mendapatkan pengguna saat ini.
Anda juga bisa mendapatkan pengguna yang saat ini masuk dengan menggunakan properti currentUser
. Jika pengguna tidak masuk, pengguna saat ini currentUser
:
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 dari instance 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 UserProfileChangeRequest
. 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) { // ... }];
Tetapkan alamat email pengguna
Anda dapat menetapkan alamat email pengguna dengan metode updateEmail
. 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 Authentication pada 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];
Tetapkan kata sandi pengguna
Anda dapat mengatur kata sandi pengguna dengan metode updatePassword
. Sebagai contoh:
Cepat
Auth.auth().currentUser?.updatePassword(to: password) { error in // ... }
Objective-C
[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) { // ... }];
Kirim email setel ulang kata sandi
Anda dapat mengirim email pengaturan ulang kata sandi ke pengguna dengan metode sendPasswordReset
. 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 Authentication pada 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 setel ulang kata sandi.
Selain itu, Anda dapat melokalkan email setel ulang sandi dengan memperbarui kode bahasa pada instans 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 setel ulang sandi dari konsol Firebase.
Hapus pengguna
Anda dapat menghapus akun pengguna dengan metode delete
. 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 konsol Firebase , di halaman Pengguna.
Autentikasi ulang pengguna
Beberapa tindakan peka keamanan—seperti menghapus akun , menyetel alamat email utama , dan mengubah sandi —mengharuskan pengguna baru saja masuk. Jika Anda melakukan salah satu dari 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 menggunakan perintah auth:import
Firebase CLI. Sebagai contoh:
firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14