FirebaseUI, için kullanılacak geçişli kullanıcı arayüzü akışları sağlayan Firebase Authentication SDK'sının dokunun. FirebaseUI aşağıdaki avantajları sağlar:
- Birden fazla sağlayıcı: e-posta/şifre, e-posta bağlantısı, telefon için oturum açma akışları kimlik doğrulama, Google ile Oturum Açma, Facebook Girişi ve Twitter Girişi.
- Hesap yönetimi: Hesap yönetimi görevlerini; hesap oluşturma ve şifre sıfırlama.
- Anonim hesap bağlama: Anonim hesapları otomatik olarak bağlamayı sağlayan akışlar. kimlik sağlayıcılarla çalışır.
- Özelleştirilebilir: FirebaseUI'nin görünümünü, uygulamanıza uyacak şekilde özelleştirin. Ayrıca, FirebaseUI açık kaynak olduğundan projeyi çatallayıp özelleştirebilirsiniz. uyarlayabilirsiniz.
Başlamadan önce
FirebaseUI'yi Podfile dosyanıza ekleyin:
pod 'FirebaseUI'
İsterseniz yalnızca Kimlik Doğrulama bileşenini ve kullandığınız sağlayıcıları ekleyebilirsiniz Şunu kullanmak istiyorum:
pod 'FirebaseUI/Auth' pod 'FirebaseUI/Google' pod 'FirebaseUI/Facebook' pod 'FirebaseUI/OAuth' # Used for Sign in with Apple, Twitter, etc pod 'FirebaseUI/Phone'
Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolunda bulabilirsiniz.
Oturum açma yöntemlerini ayarlayın
Firebase'i kullanıcıların oturumlarında oturum açmak için kullanmadan önce nasıl oturum açacağınızı belirleyin.
E-posta adresi ve şifre
Firebase konsolunda Kimlik Doğrulama bölümünü açın ve e-postayı etkinleştirin ve şifreyle kimlik doğrulama.
E-posta bağlantısı kimlik doğrulaması
Firebase konsolunda Kimlik Doğrulama bölümünü açın. Sign in method (Oturum açma yöntemi) sekmesinde, Email/Password (E-posta/Şifre) sağlayıcısını etkinleştirin. Not e-posta bağlantısıyla oturum açmayı kullanmak için e-posta veya şifreyle oturum açmanın etkinleştirilmesi gerekir.
Aynı bölümde, E-posta bağlantısı (şifresiz oturum açma) oturum açmayı etkinleştirin. yöntemini seçin ve Kaydet'i tıklayın.
Bir
FUIEmailAuth
başlatarak e-posta bağlantısıyla oturum açmayı etkinleştirebilirsinizFIREmailLinkAuthSignInMethod
örneği. Ayrıca şu belgeleri de sağlamanız gerekir:handleCodeInApp
içeren geçerli birFIRActionCodeSettings
nesnesi doğru değerine ayarlanmış.
Swift
var actionCodeSettings = ActionCodeSettings()
actionCodeSettings.url = URL(string: "https://example.appspot.com")
actionCodeSettings.handleCodeInApp = true
actionCodeSettings.setAndroidPackageName("com.firebase.example", installIfNotAvailable: false, minimumVersion: "12")
let provider = FUIEmailAuth(authUI: FUIAuth.defaultAuthUI()!,
signInMethod: FIREmailLinkAuthSignInMethod,
forceSameDevice: false,
allowNewEmailAccounts: true,
actionCodeSetting: actionCodeSettings)
Objective-C
FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init];
actionCodeSettings.URL = [NSURL URLWithString:@"https://example.appspot.com"];
actionCodeSettings.handleCodeInApp = YES;
[actionCodeSettings setAndroidPackageName:@"com.firebase.example"
installIfNotAvailable:NO
minimumVersion:@"12"];
id<FUIAuthProvider> provider = [[FUIEmailAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]
signInMethod:FIREmailLinkAuthSignInMethod
forceSameDevice:NO
allowNewEmailAccounts:YES
actionCodeSetting:actionCodeSettings];
Ayrıca, başlatıcıya ilettiğiniz URL'yi de beyaz listeye eklemeniz gerekir. Bunu Firebase konsolunda, Kimlik Doğrulama'yı açarak yapabilirsiniz. bölümüne bakın. Oturum açma yöntemi sekmesinde, URL'yi Yetkili alanlar.
Derin bağlantıyı yakaladıktan sonra, bunu kimlik doğrulama kullanıcı arayüzüne iletmeniz gerekir. ele alınabilir.
Swift
FUIAuth.defaultAuthUI()!.handleOpen(url, sourceApplication: sourceApplication)
Objective-C
[[FUIAuth defaultAuthUI] handleOpenURL:url sourceApplication:sourceApplication];
- FirebaseUI-iOS'te e-posta bağlantısıyla oturum açma özelliği şununla uyumludur: FirebaseUI-Android ve FirebaseUI-web FirebaseUI-Android'den akışı başlatan bir kullanıcı, ve FirebaseUI-web ile oturum açma işlemini tamamlayın. Aynı durum, akışı sağlar.
Apple
Başlamadan önce ve Apple anonimleştirilmiş verileriyle uyumlu olmalı<br> bölümündeki talimatları uygulayın. gereksinimleri Firebase Apple ile oturum açma rehberini inceleyin.
Yararlanma hakları dosyanıza Apple ile oturum açma özelliğini ekleyin.
Apple ile oturum açma özelliği için yapılandırılmış bir OAuth sağlayıcı örneğini başlatın:
Swift
provider = FUIOAuth.appleAuthProvider()
Objective-C
FUIOAuth *provider = [FUIOAuth appleAuthProvider];
- Bu eğiticiyi kullanarak Google ile Oturum Açma özelliğini ayarlama
Facebook Giriş SDK'sını ayarlamak için şu adımları uygulayın: Facebook'un başlangıç sayfası.
Firebase konsolunda Kimlik Doğrulama bölümünü açın ve Facebook. Facebook ile oturum açmayı etkinleştirmek için Facebook Uygulama Kimliğinizi sağlamanız gerekir ve Facebook Developers Console'dan edinebileceğiniz Uygulama Sırrı'nı da kullanabilirsiniz.
Proje Ayarları > bölümünden Xcode projenizde anahtar zinciri paylaşımını etkinleştirin Özellikler ekranı.
fbFACEBOOK_APP_ID
öğesini Xcode projesi.Facebook uygulaması kimliğinizi ve görünen adınızı
Info.plist
dosyasına ekleyin:Anahtar Değer FacebookUygulama Kimliği FACEBOOK_APP_ID
(örneğin,1234567890
)FacebookGörüntü Adı Uygulamanızın adı Facebook sağlayıcı örneğini başlatın:
Swift
provider = FUIFacebookAuth(authUI: FUIAuth.defaultAuthUI())
Objective-C
FUIFacebookAuth *provider = [[FUIFacebookAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]];
Raporlarınızda Facebook Limited Login,
FUIFacebookAuth
örneğindeuseLimitedLogin
özelliğini ayarlayın.Swift
provider.useLimitedLogin = true
Objective-C
provider.useLimitedLogin = YES;
Firebase konsolunda Kimlik Doğrulama bölümünü açın ve Twitter Twitter ile oturum açmayı etkinleştirmek için Twitter API'nizi sağlamanız gerekir Twitter Uygulaması'ndan bulabileceğiniz tüketici anahtarı ve sırrı Yönetim konsolu
Twitter girişi için yapılandırılmış bir OAuth sağlayıcı örneğini başlatın:
Swift
provider = FUIOAuth.twitterAuthProvider()
Objective-C
FUIOAuth *provider = [FUIOAuth twitterAuthProvider];
Telefon numarası
Firebase konsolunda Kimlik Doğrulama bölümünü açın ve telefon numarasıyla oturum açmayı deneyin.
Firebase, telefon numarasıyla oturum açma isteklerinin geri dönüyor. Bunu yapmanın yollarından biri APN'ler bildirimleri etkinleştirebilirsiniz. Görüntüleyin Uygulama doğrulamayı etkinleştirme inceleyebilirsiniz.
Firebase Authentication ile kullanılacak APNs bildirimlerini etkinleştirmek için:
Xcode'da push bildirimlerini etkinleştirin belirleneceğini konuşacağız.
APNs kimlik doğrulama anahtarınızı Firebase'e yükleyin. Halihazırda bir APNs kimlik doğrulama anahtarınız yoksa Apple Geliştirici Üye Merkezi.
-
Firebase konsolunda projenizin içinde, açılır menüden dişli simgesi, seçin Proje Ayarları'nı tıklayın ve ardından Cloud Messaging sekmesi.
-
iOS uygulaması yapılandırması bölümündeki APN kimlik doğrulama anahtarı'nda, Yükle'yi tıklayın. düğmesini tıklayın.
-
Anahtarınızı kaydettiğiniz konuma gidin, anahtarı seçin ve Aç. Anahtarın anahtar kimliğini ekleyin ( Apple Developer Member Center) oturum açın Yükle.
Zaten bir APNs sertifikanız varsa sertifikayı yükleyebilirsiniz. .
-
Bir cihazda APNs bildirimleri alınamadığında Firebase, İstekleri doğrulamak için reCAPTCHA'yı kullanın.
reCAPTCHA doğrulamasını etkinleştirmek için Xcode'da aşağıdakileri yapın:
- Proje yapılandırmanızı açın: sol ağaç görünümünde yer alır. HEDEFLER bölümünden uygulamanızı seçin, ardından Bilgi sekmesini seçin ve URL Türleri bölümünü genişletin.
- + düğmesini tıklayın ve Kodlanmış Uygulama Kimliğinizi URL olarak ekleyin
şema. Kodlanmış Uygulama Kimliğinizi şurada bulabilirsiniz:
Genel
Firebase konsolunun Ayarlar sayfasındaki Ayarlar bölümünde
uygulamasını indirin. Diğer alanları boş bırakın.
Tamamlandığında yapılandırmanız şuna benzer bir görünümde olacaktır: aşağıdaki (ancak uygulamaya özel değerlerinizle):
İsteğe bağlı: Firebase, Firebase tarafından gönderilen sessiz push bildirimlerini yönetmek için uygulamanın APNs jetonunu ve özel şema yönlendirmesine otomatik olarak müdahale etmek için .
Kaydırma özelliğini kullanmamayı tercih ederseniz Ek: Kaydırma olmadan telefon oturum açma özelliğini kullanma bölümüne bakın. bölümüne göz atın.
Oturum aç
FirebaseUI oturum açma akışını başlatmak için önce FirebaseUI'yi başlatın:
Swift
import FirebaseAuthUI
/* ... */
FirebaseApp.configure()
let authUI = FUIAuth.defaultAuthUI()
// You need to adopt a FUIAuthDelegate protocol to receive callback
authUI.delegate = self
Objective-C
@import FirebaseAuthUI;
...
[FIRApp configure];
FUIAuth *authUI = [FUIAuth defaultAuthUI];
// You need to adopt a FUIAuthDelegate protocol to receive callback
authUI.delegate = self;
Ardından, FirebaseUI'yi desteklemek istediğiniz oturum açma yöntemlerini kullanacak şekilde yapılandırın:
Swift
import FirebaseAuthUI
import FirebaseFacebookAuthUI
import FirebaseGoogleAuthUI
import FirebaseOAuthUI
import FirebasePhoneAuthUI
let providers: [FUIAuthProvider] = [
FUIGoogleAuth(),
FUIFacebookAuth(),
FUITwitterAuth(),
FUIPhoneAuth(authUI:FUIAuth.defaultAuthUI()),
]
self.authUI.providers = providers
Objective-C
@import FirebaseAuthUI;
@import FirebaseFacebookAuthUI;
@import FirebaseGoogleAuthUI;
@import FirebaseOAuthUI;
@import FirebasePhoneAuthUI;
...
NSArray<id<FUIAuthProvider>> *providers = @[
[[FUIGoogleAuth alloc] init],
[[FUIFacebookAuth alloc] init],
[[FUITwitterAuth alloc] init],
[[FUIPhoneAuth alloc] initWithAuthUI:[FUIAuth defaultAuthUI]]
];
_authUI.providers = providers;
Google veya Facebook ile oturum açmayı etkinleştirdiyseniz Google ve Facebook kayıt akışları:
Swift
func application(_ app: UIApplication, open url: URL,
options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
let sourceApplication = options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String?
if FUIAuth.defaultAuthUI()?.handleOpen(url, sourceApplication: sourceApplication) ?? false {
return true
}
// other URL handling goes here.
return false
}
Objective-C
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
NSString *sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey];
return [[FUIAuth defaultAuthUI] handleOpenURL:url sourceApplication:sourceApplication];
}
Son olarak, FUIAuth
üzerinden AuthViewController
öğesinin bir örneğini alın. Ardından
veya bunu uygulamanızın ilk görüntüleme denetleyicisi olarak veya
görüntüleyebilirsiniz.
Swift
Oturum açma yöntemi seçiciyi almak için:
let authViewController = authUI.authViewController()
Yalnızca telefon numarasıyla oturum açmayı kullanıyorsanız telefon numarasını görüntüleyebilirsiniz doğrudan oturum açma görünümünü seçebilirsiniz:
let phoneProvider = FUIAuth.defaultAuthUI().providers.first as! FUIPhoneAuth
phoneProvider.signIn(withPresenting: currentlyVisibleController, phoneNumber: nil)
Objective-C
Oturum açma yöntemi seçiciyi almak için:
UINavigationController *authViewController = [authUI authViewController];
Yalnızca telefon numarasıyla oturum açmayı kullanıyorsanız telefon numarasını görüntüleyebilirsiniz doğrudan oturum açma görünümünü seçebilirsiniz:
FUIPhoneAuth *phoneProvider = [FUIAuth defaultAuthUI].providers.firstObject;
[phoneProvider signInWithPresentingViewController:currentlyVisibleController phoneNumber:nil];
Kimlik doğrulama görünümü gösterildikten ve kullanıcı oturum açtıktan sonra sonuç
didSignInWithUser:error:
içinde FirebaseUI Auth temsilcisine geri döndü
yöntem:
Swift
func authUI(_ authUI: FUIAuth, didSignInWith user: FIRUser?, error: Error?) {
// handle user and error as necessary
}
Objective-C
- (void)authUI:(FUIAuth *)authUI
didSignInWithUser:(nullable FIRUser *)user
error:(nullable NSError *)error {
// Implement this method to handle signed in user or error if any.
}
Oturumu Kapatın
FirebaseUI, Firebase Authentication'dan çıkış yapmak için kolay yöntemler sunar sosyal kimlik sağlayıcılarının yanı sıra şunlara da dikkat etmelisiniz:
Swift
authUI.signOut()
Objective-C
[authUI signOut];
Özelleştirme
FirebaseUI'nin görünümünü alt sınıflandırarak oturum açma ekranlarını özelleştirebilirsiniz
denetleyicileri etkinleştirin ve bunları FUIAuth
kullanıcısının yetki verme yöntemlerinde belirtin:
Swift
func authPickerViewController(forAuthUI authUI: FUIAuth) -> FUIAuthPickerViewController {
return FUICustomAuthPickerViewController(nibName: "FUICustomAuthPickerViewController",
bundle: Bundle.main,
authUI: authUI)
}
func emailEntryViewController(forAuthUI authUI: FUIAuth) -> FUIEmailEntryViewController {
return FUICustomEmailEntryViewController(nibName: "FUICustomEmailEntryViewController",
bundle: Bundle.main,
authUI: authUI)
}
func passwordRecoveryViewController(forAuthUI authUI: FUIAuth, email: String) -> FUIPasswordRecoveryViewController {
return FUICustomPasswordRecoveryViewController(nibName: "FUICustomPasswordRecoveryViewController",
bundle: Bundle.main,
authUI: authUI,
email: email)
}
func passwordSignInViewController(forAuthUI authUI: FUIAuth, email: String) -> FUIPasswordSignInViewController {
return FUICustomPasswordSignInViewController(nibName: "FUICustomPasswordSignInViewController",
bundle: Bundle.main,
authUI: authUI,
email: email)
}
func passwordSignUpViewController(forAuthUI authUI: FUIAuth, email: String) -> FUIPasswordSignUpViewController {
return FUICustomPasswordSignUpViewController(nibName: "FUICustomPasswordSignUpViewController",
bundle: Bundle.main,
authUI: authUI,
email: email)
}
func passwordVerificationViewController(forAuthUI authUI: FUIAuth, email: String, newCredential: AuthCredential) -> FUIPasswordVerificationViewController {
return FUICustomPasswordVerificationViewController(nibName: "FUICustomPasswordVerificationViewController",
bundle: Bundle.main,
authUI: authUI,
email: email,
newCredential: newCredential)
}
Objective-C
- (FUIAuthPickerViewController *)authPickerViewControllerForAuthUI:(FUIAuth *)authUI {
return [[FUICustomAuthPickerViewController alloc] initWithNibName:@"FUICustomAuthPickerViewController"
bundle:[NSBundle mainBundle]
authUI:authUI];
}
- (FUIEmailEntryViewController *)emailEntryViewControllerForAuthUI:(FUIAuth *)authUI {
return [[FUICustomEmailEntryViewController alloc] initWithNibName:@"FUICustomEmailEntryViewController"
bundle:[NSBundle mainBundle]
authUI:authUI];
}
- (FUIPasswordSignInViewController *)passwordSignInViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email {
return [[FUICustomPasswordSignInViewController alloc] initWithNibName:@"FUICustomPasswordSignInViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email];
}
- (FUIPasswordSignUpViewController *)passwordSignUpViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email {
return [[FUICustomPasswordSignUpViewController alloc] initWithNibName:@"FUICustomPasswordSignUpViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email];
}
- (FUIPasswordRecoveryViewController *)passwordRecoveryViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email {
return [[FUICustomPasswordRecoveryViewController alloc] initWithNibName:@"FUICustomPasswordRecoveryViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email];
}
- (FUIPasswordVerificationViewController *)passwordVerificationViewControllerForAuthUI:(FUIAuth *)authUI
email:(NSString *)email
newCredential:(FIRAuthCredential *)newCredential {
return [[FUICustomPasswordVerificationViewController alloc] initWithNibName:@"FUICustomPasswordVerificationViewController"
bundle:[NSBundle mainBundle]
authUI:authUI
email:email
newCredential:newCredential];
}
Uygulamanızın şurada bağlantısı verilen hizmet şartlarının URL'sini özelleştirebilirsiniz: hesap oluşturma ekranı:
Swift
let kFirebaseTermsOfService = URL(string: "https://example.com/terms")!
authUI.tosurl = kFirebaseTermsOfService
Objective-C
authUI.TOSURL = [NSURL URLWithString:@"https://example.com/terms"];
Son olarak da kullanıcılarınıza gösterilen mesajları ve istemleri, Özel bir paket belirterek:
Swift
authUI.customStringsBundle = NSBundle.mainBundle() // Or any custom bundle.
Objective-C
authUI.customStringsBundle = [NSBundle mainBundle]; // Or any custom bundle.
Sonraki adımlar
- FirebaseUI'yi kullanma ve özelleştirme hakkında daha fazla bilgi için BENİOKU dosyasına gidin.
- FirebaseUI'de sorun görür ve bildirmek isterseniz GitHub sorun izleyici.