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

Kullanıcıların e-posta adresi ve şifreyle oturum açma, Google ile Oturum Açma ve Facebook Girişi gibi birleşik kimlik sağlayıcılar 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 hizmetini kullanabilirsiniz. Bu eğitimde, uygulamanıza e-posta adresi ve şifreyle oturum açma özelliği ekleme adımları gösterilerek Firebase Authentication hizmetini kullanmaya 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ılıklarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.

Firebase SDK'larını Apple projenize eklemenin farklı yollarını öğrenmek için
  1. Xcode'da uygulama projeniz 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. Hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne -ObjC işaretini ekleyin.
  6. İşlem tamamlandığında Xcode, arka planda bağımlılıklarınızı otomatik olarak çözmeye 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ş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 vermeye çalışıyorsanız, Authentication ve Firebase Security Rules kullanarak herkese açık ve gizli verilerle farklı veri modellerini deniyorsanız veya oturum açma kullanıcı arayüzü tasarımlarının prototiplerini oluşturuyorsanız canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir.

Authentication emülatörü, uygulamanızın emülasyonu yapılmış veritabanı içeriği ve yapılandırmasının yanı sıra isteğe bağlı olarak emülasyonu yapılmış 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 yeterlidir:

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

Ayrıntılı kılavuzu Uygulamanızı Authentication emülatörüne bağlama sayfasında 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 bakalım.

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.

İşleyiciyi, 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) {
      // ...
    }];

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

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Yeni kullanıcıların kaydolmasını sağlama

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ı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 oturum açması

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 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ı başarıyla 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: