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

Otentikasi dengan Firebase menggunakan Akun Berbasis Kata Sandi di Platform Apple

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Anda dapat menggunakan Firebase Authentication agar pengguna Anda dapat mengautentikasi dengan Firebase menggunakan alamat email dan sandi mereka, dan untuk mengelola akun berbasis sandi aplikasi Anda.

Sebelum kamu memulai

Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.

  1. Di Xcode, dengan proyek aplikasi Anda terbuka, navigasikan ke File > Add Packages .
  2. Saat diminta, tambahkan repositori SDK platform Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Pilih pustaka Firebase Authentication.
  5. Setelah selesai, Xcode akan secara otomatis mulai menyelesaikan dan mengunduh dependensi Anda di latar belakang.

Selanjutnya, lakukan beberapa langkah konfigurasi:

  1. Jika Anda belum menghubungkan aplikasi ke proyek Firebase, lakukan dari Firebase console .
  2. Aktifkan masuk Email/Kata Sandi:
    1. Di Firebase console , buka bagian Auth .
    2. Pada tab Metode masuk , aktifkan metode masuk Email/sandi dan klik Simpan .

Buat akun berbasis kata sandi

Untuk membuat akun pengguna baru dengan sandi, selesaikan langkah-langkah berikut di aktivitas masuk aplikasi Anda:

  1. Impor modul FirebaseCore di UIApplicationDelegate Anda, serta modul Firebase lain yang digunakan delegasi aplikasi Anda. Misalnya, untuk menggunakan Cloud Firestore dan Otentikasi:

    Cepat

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Konfigurasikan instance bersama FirebaseApp dalam metode application(_:didFinishLaunchingWithOptions:) delegasi aplikasi Anda:

    Cepat

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Saat pengguna baru mendaftar menggunakan formulir pendaftaran aplikasi Anda, selesaikan semua langkah validasi akun baru yang diperlukan aplikasi Anda, seperti memverifikasi bahwa sandi akun baru telah diketik dengan benar dan memenuhi persyaratan kompleksitas Anda.
  4. Buat akun baru dengan meneruskan alamat email dan kata sandi pengguna baru ke createUserWithEmail:email:password:completion: .

    Cepat

    Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
      // ...
    }

    Objective-C

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    Jika akun baru berhasil dibuat, pengguna masuk, dan Anda bisa mendapatkan data akun pengguna dari objek hasil yang diteruskan ke metode panggilan balik.

Masuk pengguna dengan alamat email dan kata sandi

Langkah-langkah untuk memasukkan pengguna dengan kata sandi mirip dengan langkah-langkah untuk membuat akun baru. Dalam aktivitas masuk aplikasi Anda, lakukan hal berikut:

  1. Impor modul FirebaseCore di UIApplicationDelegate Anda, serta modul Firebase lain yang digunakan delegasi aplikasi Anda. Misalnya, untuk menggunakan Cloud Firestore dan Otentikasi:

    Cepat

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Konfigurasikan instance bersama FirebaseApp dalam metode application(_:didFinishLaunchingWithOptions:) delegasi aplikasi Anda:

    Cepat

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

    Objective-C

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

    Cepat

    Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
      guard let strongSelf = self else { return }
      // ...
    }

    Objective-C

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

Langkah selanjutnya

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

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

  • Di Aturan Keamanan Firebase Realtime Database dan Cloud Storage , Anda bisa mendapatkan ID pengguna unik pengguna yang masuk dari variabel auth , dan menggunakannya untuk mengontrol data apa yang dapat diakses pengguna.

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

Untuk mengeluarkan pengguna, panggil signOut: .

Cepat

    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;
}

Anda mungkin juga ingin menambahkan kode penanganan kesalahan untuk berbagai kesalahan otentikasi. Lihat Menangani Kesalahan .