Kullanıcıların, e-posta adresi ve şifreyle oturum açma dahil bir veya daha fazla oturum açma yöntemini ve Google Oturum Açma ve Facebook Oturum Açma gibi birleştirilmiş kimlik sağlayıcılarını kullanarak uygulamanızda oturum açmasına izin vermek için Firebase Authentication'ı kullanabilirsiniz. Bu eğitim, uygulamanıza e-posta adresi ve parolayla oturum açmayı nasıl ekleyeceğinizi göstererek Firebase Authentication'ı kullanmaya başlamanızı sağlar.
Uygulamanızı Firebase'e bağlayın
- Firebase SDK'sını yükleyin .
- Firebase konsolunda uygulamanızı Firebase projenize ekleyin.
Uygulamanıza Firebase Kimlik Doğrulaması ekleyin
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Paket Yöneticisini kullanın.
- Xcode'da uygulama projeniz açıkken Dosya > Paket Ekle'ye gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Kimlik Doğrulama kitaplığını seçin.
-
-ObjC
bayrağını hedefinizin derleme ayarlarının Diğer Bağlayıcı Bayrakları bölümüne ekleyin. - Bitirdiğinizde Xcode, bağımlılıklarınızı arka planda otomatik olarak çözmeye ve indirmeye başlayacaktır.
https://github.com/firebase/firebase-ios-sdk.git
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip yapın ve test edin
Uygulamanızın kullanıcıların kimliğini nasıl doğruladığından bahsetmeden önce, Kimlik Doğrulama işlevinin prototipini oluşturmak ve test etmek için kullanabileceğiniz bir dizi aracı tanıtalım: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri ve sağlayıcılar arasında karar veriyorsanız, Kimlik Doğrulama ve Firebase Güvenlik Kurallarını kullanarak genel ve özel verilerle farklı veri modellerini denemek veya oturum açma kullanıcı arayüzü tasarımlarının prototipini oluşturmak istiyorsanız, canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir .
Kimlik Doğrulama öykünücüsü, uygulamanızın öykünülmüş veritabanı içeriği ve yapılandırmasının yanı sıra isteğe bağlı olarak öykünülmüş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlayan Yerel Öykünücü Paketi'nin bir parçasıdır.
Kimlik Doğrulama öykünücüsünü kullanmak yalnızca birkaç adımı içerir:
- Öykünücüye bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
- Yerel proje dizininizin kökünden,
firebase emulators:start
çalıştırılıyor. - Etkileşimli prototip oluşturma için Local Emulator Suite kullanıcı arayüzünü veya etkileşimli olmayan testler için Kimlik Doğrulama öykünücüsü REST API'yi kullanma.
Uygulamanızı Kimlik Doğrulama öykünücüsüne bağlama bölümünde ayrıntılı bir kılavuz mevcuttur. Daha fazla bilgi için Local Emulator Suite'in tanıtımına bakın.
Şimdi kullanıcıların kimliğinin nasıl doğrulanacağına devam edelim.
Firebase SDK'sını başlatın
Uygulama temsilcinizde öncelikle Firebase SDK'sını içe aktarın:
Süratli
import FirebaseCore
Amaç-C
@import FirebaseCore;
Ardından, application:didFinishLaunchingWithOptions:
yönteminde FirebaseApp
nesnesini başlatın:
Süratli
// Use Firebase library to configure APIs
FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs
[FIRApp configure];
Kimlik doğrulama durumunu dinle
Oturum açan kullanıcı hakkında bilgi gerektiren uygulama görünümlerinizin her biri için FIRAuth
nesnesine bir dinleyici ekleyin. Bu dinleyici, kullanıcının oturum açma durumu değiştiğinde çağrılır.
Dinleyiciyi görünüm denetleyicisinin viewWillAppear
yöntemine ekleyin:
Süratli
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
Amaç-C
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
Ve dinleyiciyi görünüm denetleyicisinin viewWillDisappear
yöntemiyle ayırın:
Süratli
Auth.auth().removeStateDidChangeListener(handle!)
Amaç-C
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
Yeni kullanıcılar kaydedin
Yeni kullanıcıların e-posta adreslerini ve şifrelerini kullanarak uygulamanıza kaydolmalarına olanak tanıyan bir form oluşturun. Kullanıcı formu doldurduğunda, kullanıcı tarafından sağlanan e-posta adresini ve şifreyi doğrulayın ve ardından bunları createUser
yöntemine iletin:
Süratli
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
// ...
}
Amaç-C
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Mevcut kullanıcılarda oturum açın
Mevcut kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oturum açmalarına olanak tanıyan bir form oluşturun. Kullanıcı formu tamamladığında signIn
yöntemini çağırın:
Süratli
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
guard let strongSelf = self else { return }
// ...
}
Amaç-C
[[FIRAuth auth] signInWithEmail:self->_emailField.text
password:self->_passwordField.text
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Kullanıcı bilgilerini alın
Bir kullanıcı başarıyla oturum açtıktan sonra kullanıcı hakkında bilgi alabilirsiniz. Örneğin, kimlik doğrulama durumu dinleyicinizde :
Süratli
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 += " "
}
// ...
}
Amaç-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;
// ...
}
Sonraki adımlar
Diğer kimlik sağlayıcılar ve anonim konuk hesapları için nasıl destek ekleyeceğinizi öğrenin: