Kullanıcıların e-posta adresi ve şifreyle oturum açma gibi bir veya daha fazla oturum açma yöntemiyle ve Google ile Oturum Açma ve Facebook Login gibi birleştirilmiş kimlik sağlayıcılarla uygulamanızda oturum açmasına izin vermek için Firebase Authentication kullanabilirsiniz. Bu eğitimde, uygulamanıza e-posta adresi ve şifreyle oturum açma özelliğini nasıl ekleyeceğiniz gösterilerek Firebase Authentication ile çalışmaya başlamanız sağlanır.
Uygulamanızı Firebase'e bağlama
- Firebase SDK'sını yükleyin.
- Firebase konsolunda uygulamanızı Firebase projenize ekleyin.
Uygulamanıza Firebase Authentication ekleme
Firebase bağımlılarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulamanız açıkken File > Add Packages (Dosya > Paket Ekle) seçeneğine gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Authentication kitaplığını seçin.
-ObjC
işaretini hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne ekleyin.- İşlem tamamlandığında Xcode otomatik olarak arka planda bağımlılarınızı çözümlemeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip oluşturma ve test etme
Uygulamanızın kullanıcıların kimliğini nasıl doğruladığından bahsetmeden önce, Authentication işlevselliğini prototip oluşturmak ve test etmek için kullanabileceğiniz bir dizi aracıFirebase Local Emulator Suite tanıtalım. Kimlik doğrulama teknikleri ve sağlayıcıları arasında karar veriyorsanız, Authentication ve Firebase Security Rules kullanarak herkese açık ve özel verilerle farklı veri modellerini deniyorsanız veya oturum açma kullanıcı arayüzü tasarımlarının prototipini oluşturuyorsanız canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir.
Authentication emülatörü, uygulamanızın emüle edilmiş veritabanı içeriği ve yapılandırmasıyla, isteğe bağlı olarak da emüle edilmiş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlayan Local Emulator Suite'nin bir parçasıdır.
Authentication emülatörünü kullanmak için yalnızca birkaç adım gerekir:
- Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleyin.
- Yerel proje dizininizin kökünden
firebase emulators:start
komutunu çalıştırın. - Etkileşimli prototip oluşturma için Local Emulator Suite kullanıcı arayüzünü veya etkileşimli olmayan test için Authentication emülatör REST API'sini kullanma.
Ayrıntılı kılavuzu Uygulamanızı Authentication emülatörüne bağlama başlıklı makalede bulabilirsiniz. Daha fazla bilgi için Local Emulator Suite giriş bölümüne bakın.
Şimdi kullanıcıların kimliğini nasıl doğrulayacağımıza geçelim.
Firebase SDK'sını başlatma
Uygulama temsilcinizde önce Firebase SDK'sını içe aktarın:
Swift
import FirebaseCore
Objective-C
@import FirebaseCore;
Ardından, application:didFinishLaunchingWithOptions:
yönteminde FirebaseApp
nesnesini başlatın:
Swift
// Use Firebase library to configure APIs
FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs
[FIRApp configure];
Kimlik doğrulama durumunu dinleme
Uygulamanızın, oturum açmış kullanıcı hakkında bilgi gerektiren her görünümü için FIRAuth
nesnesine bir dinleyici ekleyin. Bu dinleyici, kullanıcının oturum açma durumu her değiştiğinde çağrılır.
Dinleyiciyi görünüm denetleyicisinin viewWillAppear
yöntemine ekleyin:
Swift
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
Objective-C
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
Ayrıca, görünüm denetleyicisinin viewWillDisappear
yönteminde dinleyiciyi ayırın:
Swift
Auth.auth().removeStateDidChangeListener(handle!)
Objective-C
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
Yeni kullanıcıları kaydetme
Yeni kullanıcıların e-posta adreslerini ve şifrelerini kullanarak uygulamanıza kaydolmasına olanak tanıyan bir form oluşturun. Kullanıcı formu doldurduğunda, kullanıcının sağladığı e-posta adresini ve şifreyi doğrulayın, ardından bunları createUser
yöntemine iletin:
Swift
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) {
// ...
}];
Mevcut kullanıcıların oturumunu açma
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:
Swift
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) {
// ...
}];
Kullanıcı bilgilerini alma
Bir kullanıcı başarılı bir şekilde oturum açtıktan sonra kullanıcı hakkında bilgi edinebilirsiniz. Örneğin, kimlik doğrulama durumu dinleyicinizde:
Swift
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;
// ...
}
Sonraki adımlar
Diğer kimlik sağlayıcılar ve anonim konuk hesapları için destek ekleme hakkında bilgi edinin: