Buka konsol

Melakukan Autentikasi dengan Firebase menggunakan Akun Berbasis Sandi di iOS

Anda dapat menggunakan Firebase Authentication untuk mengizinkan pengguna melakukan autentikasi dengan Firebase menggunakan alamat email dan sandinya, serta untuk mengelola akun berbasis sandi pada aplikasi Anda.

Sebelum memulai

  1. Tambahkan Firebase ke project iOS Anda. Sertakan pod berikut di Podfile Anda:
    pod 'Firebase/Auth'
  2. Jika Anda belum menghubungkan aplikasi ke project Firebase, lakukanlah dari Firebase console.
  3. Aktifkan login dengan Email/Sandi:
    1. Di Firebase console, buka bagian Auth.
    2. Di tab Metode login, aktifkan metode login Email/sandi dan klik Simpan.

Membuat akun berbasis sandi

Untuk membuat akun pengguna baru dengan sandi, lakukan langkah-langkah berikut pada aktivitas login aplikasi Anda:

  1. Impor modul Firebase di UIApplicationDelegate Anda:

    Swift

    import Firebase
    

    Objective-C

    @import Firebase;
    
  2. Konfigurasi instance bersama FirebaseApp, yang biasanya ada dalam metode application:didFinishLaunchingWithOptions: aplikasi Anda:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Ketika pengguna baru mendaftar dengan menggunakan formulir pendaftaran aplikasi Anda, lakukan langkah-langkah validasi akun baru yang diwajibkan oleh aplikasi, seperti memverifikasi bahwa sandi akun baru tersebut telah diketik dengan benar dan memenuhi persyaratan kerumitan.
  4. Buat akun baru dengan cara meneruskan alamat email dan sandi pengguna baru ke createUserWithEmail:email:password:completion::

    Swift

    Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
      // ...
      guard let user = authResult?.user else { return }
    }

    Objective-C

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    Jika akun baru berhasil dibuat dan pengguna telah login, Anda dapat memperoleh data akun pengguna tersebut dari objek hasil yang diteruskan ke metode callback.

Membuat pengguna login dengan alamat email dan sandi

Langkah-langkah untuk membuat agar pengguna login dengan sandi hampir sama dengan langkah-langkah untuk membuat akun baru. Di aktivitas login aplikasi Anda, lakukan hal berikut:

  1. Impor modul Firebase di UIApplicationDelegate Anda:

    Swift

    import Firebase
    

    Objective-C

    @import Firebase;
    
  2. Konfigurasi instance bersama FirebaseApp, yang biasanya ada dalam metode application:didFinishLaunchingWithOptions: aplikasi Anda:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Ketika pengguna login ke aplikasi Anda, teruskan alamat email dan sandi pengguna tersebut ke signInWithEmail:email:password:completion::

    Swift

    Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
      // ...
    }

    Objective-C

    [[FIRAuth auth] signInWithEmail:self->_emailField.text
                           password:self->_passwordField.text
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
      // ...
    }];
    Jika pengguna berhasil login, Anda dapat memperoleh data akun pengguna tersebut dari objek hasil yang diteruskan ke metode callback.

Langkah berikutnya

Setelah pengguna login untuk pertama kalinya, akun pengguna baru akan dibuat dan dihubungkan ke kredensial—yaitu, nama pengguna dan sandi, nomor telepon, atau informasi penyedia autentikasi—yang digunakan pengguna tersebut untuk login. Akun baru ini disimpan sebagai bagian dari project Firebase Anda, dan dapat digunakan untuk mengidentifikasi pengguna di setiap aplikasi dalam project Anda, terlepas dari cara pengguna login.

  • Di aplikasi, Anda bisa memperoleh informasi profil dasar pengguna dari objek FIRUser . Lihat Mengelola Pengguna.

  • Dalam Aturan Keamanan Firebase Realtime Database dan Cloud Storage, Anda dapat memperoleh ID unik milik pengguna yang login dari variabel auth, dan menggunakannya untuk mengontrol data yang dapat diakses pengguna.

Anda dapat mengizinkan pengguna untuk login ke aplikasi Anda menggunakan beberapa penyedia autentikasi dengan menautkan kredensial penyedia autentikasi ke akun pengguna yang ada.

Agar pengguna logout, panggil signOut:.

Swift

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print ("Error signing out: %@", signOutError)
}  

Objective-C

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

Mungkin Anda juga ingin menambahkan kode penanganan error untuk berbagai error autentikasi. Lihat Menangani Error.