Apple Platformlarında Firebase Authentication'ı Kullanmaya Başlama

Kullanıcıların e-posta adresi ve şifre ile oturum açma ve Google Sign-In ile Facebook Login gibi birleşik kimlik sağlayıcılar da dahil olmak üzere bir veya daha fazla oturum açma yöntemini kullanarak uygulamanızda oturum açmasına izin vermek için Firebase Authentication öğesini kullanabilirsiniz. Bu eğitimde, uygulamanıza e-posta adresi ve şifre ile 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

  1. Firebase SDK'sını yükleyin.
  2. Firebase konsolunda uygulamanızı Firebase projenize ekleyin.

Uygulamanıza Firebase Authentication ekleme

Firebase bağımlılarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.

Firebase SDK'larını Apple projenize eklemenin farklı yolları (ör. doğrudan çerçeveleri içe aktarma ve CocoaPods kullanma) hakkında bilgi edinmek için
  1. Xcode'da, uygulamanız açıkken Dosya > Paket Ekle'ye gidin.
  2. İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Firebase Authentication kitaplığını seçin.
  5. -ObjC işaretini, hedefinizin derleme ayarlarının Diğer Bağlantı Oluşturucu İşaretleri bölümüne ekleyin.
  6. İşlem tamamlandığında Xcode, arka planda bağımlılarınızı otomatik olarak çözümlemeye ve indirmeye başlar.

(İ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şlevini prototip haline getirmek ve test etmek için kullanabileceğiniz bir araç grubunu tanıtalım: Firebase Local Emulator Suite. 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 denemek ya da oturum açma kullanıcı arayüzü tasarımlarının prototipini oluşturmak istiyorsanız canlı hizmetler dağıtmadan yerel olarak çalışabilmek mükemmel bir fikir olabilir.

Authentication emülatörü, Local Emulator Suite'un bir parçasıdır. Bu emülatör, uygulamanızın emülasyonlu veritabanı içeriği ve yapılandırmasının yanı sıra isteğe bağlı olarak emülasyonlu proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlar.

Authentication emülatörünü kullanmanın birkaç adımı vardır:

  1. Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleyin.
  2. Yerel proje dizininizin kökünden firebase emulators:start çalıştırın.
  3. Etkileşimli prototipleme 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ı bir kılavuz için Uygulamanızı Authentication emülatörüne bağlama başlıklı makaleyi inceleyin. Daha fazla bilgi için Local Emulator Suite girişine bakın.

Şimdi kullanıcıların kimliğini doğrulama konusuna 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ıyla ilgili 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) {
      // ...
    }];

Ardından, görüntüleme denetleyicisinin viewWillDisappear yönteminde dinleyiciyi kaldı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ı tarafından sağlanan 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çmasına olanak tanıyan bir form oluşturun. Kullanıcı formu doldurduğunda 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

Kullanıcılar 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 nasıl destek ekleyeceğinizi öğrenin: