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

Kullanıcıların e-posta adresi ve şifreyle oturum açma gibi bir veya daha fazla oturum açma yöntemi ve Google ile Oturum Açma ve Facebook'a Giriş gibi birleşik kimlik sağlayıcıları kullanarak uygulamanızda oturum açmasına izin vermek için Firebase Authentication'ı kullanabilirsiniz. Bu eğitim, uygulamanıza e-posta adresi ve şifreyle oturum açma bilgilerini nasıl ekleyeceğinizi göstererek Firebase Authentication'ı kullanmaya başlamanızı sağlar.

Uygulamanızı Firebase'e bağlama

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

Firebase Authentication'ı uygulamanıza ekleyin

Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.

  1. Xcode'da, uygulamanız açıkken File > Add Packages'a (Dosya > Paket Ekle) 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ındaki Diğer Bağlayıcı İşaretleri bölümüne ekleyin.
  6. İşlem tamamlandığında Xcode, arka planda bağımlılıklarınızı otomatik olarak çözümlemeye ve indirmeye başlar.

(İsteğe bağlı) Firebase Local Emulator Suite ile prototip oluşturun 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 araçtan bahsedelim: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri ve sağlayıcılar arasında karar veriyorsanız Authentication ve Firebase Güvenlik Kurallarını kullanarak herkese açık ve gizli verilerle farklı veri modelleri deniyorsanız ya da oturum açma kullanıcı arayüzü tasarımlarının prototipleri oluşturuyorsanız canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir.

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

Kimlik Doğrulama emülatörünün kullanımı yalnızca birkaç adımdan oluşur:

  1. Emülatöre bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
  2. Yerel proje dizininizin kök dizininden firebase emulators:start komutunu çalıştırın.
  3. Etkileşimli prototip oluşturmak için Local Emulator Suite kullanıcı arayüzünü veya etkileşimli olmayan test için Kimlik Doğrulama emülatörü REST API'yi kullanma.

Uygulamanızı Kimlik Doğrulama emülatörüne bağlama başlıklı makalede ayrıntılı bir kılavuz bulabilirsiniz. Daha fazla bilgi için Local Emulator Suite tanıtımı konusuna bakın.

Şimdi kullanıcı kimliğinin nasıl doğrulanacağına 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;

Daha sonra, 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 dinle

Uygulamanızın, oturum açmış kullanıcı hakkında bilgi alması gereken her bir görünüm için FIRAuth nesnesine bir işleyici ekleyin. Bu işleyici, kullanıcının oturum açma durumu her değiştiğinde çağrılır.

İşleyiciyi, görüntüleme 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) {
      // ...
    }];

Görüntüleme denetleyicisinin viewWillDisappear yönteminde işleyiciyi ayırın:

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Yeni kullanıcılar için kaydolma

Yeni kullanıcıların e-posta adreslerini ve şifrelerini kullanarak uygulamanıza kaydolmalarını sağlayan bir form oluşturun. Bir 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çmasına izin veren 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

Bir kullanıcı başarıyla oturum açtıktan sonra kullanıcıyla ilgili bilgileri alabilirsiniz. Örneğin, kimlik doğrulama durumu işleyicinizde:

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 misafir hesapları için nasıl destek ekleyeceğinizi öğrenin: