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

Firebase Authentication'ı kullanarak kullanıcıların uygulamanızda oturum açmak için bir ya da daha fazla e-posta adresi ve şifreyle oturum açma gibi diğer oturum açma yöntemlerini ve Google ile Oturum Açma ve Facebook Girişi gibi birleşik kimlik sağlayıcılar. Bu eğitim, Firebase Authentication'ı kullanmaya başlamanızı sağlar. Bu bilgiler, e-posta adresi ve şifreyle oturum açmanız gerekir.

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, uygulama projeniz açıkken Dosya > Paket Ekle'yi tıklayın.
  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. İşlemi tamamladığınızda, Xcode otomatik olarak arka planda tutmalarını sağ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 araçlar: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri arasında karar vermeye test ederek herkese açık ve gizli verilerle farklı veri modellerini deniyor, oturum açma kullanıcı arayüzü tasarımlarının prototipini oluşturarak kimlik doğrulama ve güvenlik kurallarını yerel olarak çalışmak sizin için harika bir fikir olabilir.

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

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ü kullanmak veya Etkileşimli olmayan test için kimlik doğrulama emülatörü REST API.

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;

Ardından, application:didFinishLaunchingWithOptions: yönteminde FirebaseApp nesne:

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ıyla ilgili bilgi gerektiren her bir görünümü için FIRAuth nesnesine bir işleyici ekleyin. Bu dinleyici, Kullanıcının oturum açma durumunun değişmesi.

İş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-postalarını kullanarak uygulamanıza kaydolmasına olanak tanıyan bir form oluşturun bir şifre girin. Kullanıcı formu doldurduğunda e-postayı doğrulayın tarafından sağlanan adres ve şifre, ardından createUser yöntem:

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 kullanarak oturum açmasına olanak tanıyan bir form oluşturun ve şifre. 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, ö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 konuklar için nasıl destek ekleyeceğinizi öğrenin hesaplar: