获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Memulai dengan Firebase Authentication di Apple Platforms

Anda dapat menggunakan Firebase Authentication untuk mengizinkan pengguna masuk ke aplikasi Anda menggunakan satu atau beberapa metode masuk, termasuk masuk dengan alamat email dan sandi, dan penyedia identitas gabungan seperti Masuk dengan Google dan Masuk dengan Facebook. Tutorial ini membantu Anda memulai Firebase Authentication dengan menunjukkan cara menambahkan login dengan alamat email dan sandi ke aplikasi Anda.

Hubungkan aplikasi Anda ke Firebase

  1. Instal SDK Firebase .
  2. Di Firebase console , tambahkan aplikasi Anda ke proyek Firebase Anda.

Tambahkan Firebase Authentication ke aplikasi Anda

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.

(Opsional) Prototipe dan uji dengan Firebase Local Emulator Suite

Sebelum berbicara tentang bagaimana aplikasi Anda mengautentikasi pengguna, mari perkenalkan seperangkat alat yang dapat Anda gunakan untuk membuat prototipe dan menguji fungsionalitas Otentikasi: Firebase Local Emulator Suite. Jika Anda memutuskan di antara teknik dan penyedia autentikasi, mencoba model data yang berbeda dengan data publik dan pribadi menggunakan Authentication dan Aturan Keamanan Firebase, atau membuat prototipe desain UI masuk, dapat bekerja secara lokal tanpa menerapkan layanan langsung bisa menjadi ide yang bagus .

Emulator Authentication adalah bagian dari Local Emulator Suite, yang memungkinkan aplikasi Anda berinteraksi dengan konten dan konfigurasi database yang diemulasi, serta secara opsional sumber daya proyek yang diemulasi (fungsi, database lain, dan aturan keamanan).

Menggunakan emulator Otentikasi hanya melibatkan beberapa langkah:

  1. Menambahkan baris kode ke konfigurasi pengujian aplikasi Anda untuk terhubung ke emulator.
  2. Dari root direktori proyek lokal Anda, jalankan firebase emulators:start .
  3. Menggunakan UI Suite Emulator Lokal untuk pembuatan prototipe interaktif, atau REST API emulator Otentikasi untuk pengujian non-interaktif.

Panduan mendetail tersedia di Hubungkan aplikasi Anda ke emulator Otentikasi . Untuk informasi selengkapnya, lihat pengantar Local Emulator Suite .

Sekarang mari kita lanjutkan dengan cara mengautentikasi pengguna.

Inisialisasi SDK Firebase

Di delegasi aplikasi Anda, pertama-tama impor Firebase SDK:

Cepat

import FirebaseCore

Objective-C

@import FirebaseCore;

Kemudian, dalam metode application:didFinishLaunchingWithOptions: inisialisasi objek FirebaseApp :

Cepat

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

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

Dengarkan status otentikasi

Untuk setiap tampilan aplikasi Anda yang memerlukan informasi tentang pengguna yang masuk, lampirkan listener ke objek FIRAuth . Listener ini dipanggil setiap kali status login pengguna berubah.

Lampirkan pendengar dalam metode viewWillAppear pengontrol tampilan:

Cepat

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

Objective-C

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

Dan lepaskan pendengar dalam metode viewWillDisappear pengontrol tampilan:

Cepat

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Daftarkan pengguna baru

Buat formulir yang memungkinkan pengguna baru mendaftar ke aplikasi Anda menggunakan alamat email dan kata sandi mereka. Saat pengguna melengkapi formulir, validasi alamat email dan kata sandi yang diberikan oleh pengguna, lalu berikan ke metode createUser :

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) {
  // ...
}];

Masuk pengguna yang ada

Buat formulir yang memungkinkan pengguna yang ada untuk masuk menggunakan alamat email dan kata sandi mereka. Saat pengguna melengkapi formulir, signIn metode masuk:

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) {
  // ...
}];

Dapatkan informasi pengguna

Setelah pengguna berhasil masuk, Anda bisa mendapatkan informasi tentang pengguna tersebut. Misalnya, dalam pendengar status autentikasi Anda :

Cepat

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

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

Langkah selanjutnya

Pelajari cara menambahkan dukungan untuk penyedia identitas lain dan akun tamu anonim: