Anda dapat menggunakan Firebase Authentication untuk mengizinkan pengguna masuk ke aplikasi Anda menggunakan satu atau beberapa metode masuk, termasuk masuk dengan alamat email dan kata sandi, dan penyedia identitas gabungan seperti Masuk dengan Google dan Masuk dengan Facebook. Tutorial ini membantu Anda memulai dengan Firebase Authentication dengan menunjukkan kepada Anda cara menambahkan alamat email dan login kata sandi ke aplikasi Anda.
Hubungkan aplikasi Anda ke Firebase
- Instal SDK Firebase .
- Di konsol Firebase , tambahkan aplikasi Anda ke proyek Firebase Anda.
Tambahkan Firebase Authentication ke aplikasi Anda
Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.
- Di Xcode, dengan proyek aplikasi Anda terbuka, arahkan ke File > Add Packages .
- Saat diminta, tambahkan repositori SDK platform Apple Firebase:
- Pilih pustaka Firebase Authentication.
- Setelah selesai, Xcode akan secara otomatis mulai menyelesaikan dan mengunduh dependensi Anda di latar belakang.
https://github.com/firebase/firebase-ios-sdk
(Opsional) Membuat prototipe dan menguji 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 fungsi Otentikasi: Firebase Local Emulator Suite. Jika Anda memutuskan di antara teknik dan penyedia autentikasi, mencoba berbagai model data dengan data publik dan pribadi menggunakan Aturan Keamanan Otentikasi dan Firebase, atau membuat prototipe desain UI masuk, bisa bekerja secara lokal tanpa menerapkan layanan langsung bisa menjadi ide bagus .
Emulator Autentikasi 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:
- Menambahkan baris kode ke konfigurasi pengujian aplikasi Anda untuk terhubung ke emulator.
- Dari root direktori proyek lokal Anda, jalankan
firebase emulators:start
. - Menggunakan UI Local Emulator Suite untuk pembuatan prototipe interaktif, atau REST API emulator Authentication untuk pengujian non-interaktif.
Panduan mendetail tersedia di Hubungkan aplikasi Anda ke emulator Autentikasi . Untuk informasi selengkapnya, lihat pengenalan Local Emulator Suite .
Sekarang mari kita lanjutkan dengan cara mengautentikasi pengguna.
Inisialisasi Firebase SDK
Di delegasi aplikasi Anda, impor Firebase SDK terlebih dahulu:
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 autentikasi
Untuk setiap tampilan aplikasi Anda yang memerlukan informasi tentang pengguna yang masuk, lampirkan pemroses ke objek FIRAuth
. Pemroses ini dipanggil setiap kali status masuk 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];
Mendaftar pengguna baru
Buat formulir yang memungkinkan pengguna baru untuk 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 teruskan 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) {
// ...
}];
Login pengguna yang sudah 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 dapat memperoleh informasi tentang pengguna tersebut. Misalnya, di listener 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: