Apple Platformlarında Firebase Kimlik Doğrulamasını Kullanmaya Başlayın

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

Uygulamanızı Firebase'e bağlayın

  1. Firebase SDK'sını kurun .
  2. Firebase konsolunda , uygulamanızı Firebase projenize ekleyin.

Uygulamanıza Firebase Authentication ekleyin

Firebase bağımlılıklarını kurmak ve yönetmek için Swift Paket Yöneticisi'ni kullanın.

  1. Xcode'da, uygulama projeniz açıkken File > Add Packages seçeneğine gidin.
  2. İstendiğinde, Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Firebase Kimlik Doğrulaması kitaplığını seçin.
  5. Bittiğinde, Xcode otomatik olarak arka planda bağımlılıklarınızı çözmeye ve indirmeye başlayacaktır.

(İ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ığı hakkında konuşmadan önce, Kimlik Doğrulama işlevinin prototipini oluşturmak ve test etmek için kullanabileceğiniz bir dizi aracı tanıtalım: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri ve sağlayıcılar arasında karar veriyorsanız, Kimlik Doğrulama ve Firebase Güvenlik Kurallarını kullanarak genel ve özel verilerle farklı veri modelleri deniyorsanız veya oturum açma kullanıcı arabirimi tasarımlarının prototipini oluşturuyorsanız, canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir. .

Kimlik Doğrulama öykünücüsü, uygulamanızın öykünülmüş veritabanı içeriği ve yapılandırmasının yanı sıra isteğe bağlı olarak öykünmüş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlayan Yerel Öykünücü Paketinin bir parçasıdır.

Kimlik Doğrulama öykünücüsünü kullanmak yalnızca birkaç adımı içerir:

  1. Öykünücüye bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
  2. Yerel proje dizininizin kökünden, çalıştırılan firebase emulators:start .
  3. Etkileşimli prototip oluşturma için Local Emulator Suite Kullanıcı Arabirimini veya etkileşimli olmayan testler için Kimlik Doğrulama öykünücüsü REST API'sini kullanma.

Uygulamanızı Kimlik Doğrulama öykünücüsüne bağlama adresinde ayrıntılı bir kılavuz mevcuttur. Daha fazla bilgi için Local Emulator Suite tanıtımına bakın.

Şimdi kullanıcıların kimliğinin nasıl doğrulanacağına devam edelim.

Firebase SDK'sını başlat

Uygulama temsilcinizde, önce Firebase SDK'sını içe aktarın:

Süratli

import FirebaseCore

Amaç-C

@import FirebaseCore;

Ardından, application:didFinishLaunchingWithOptions: yönteminde FirebaseApp nesnesini başlatın:

Süratli

// Use Firebase library to configure APIs
FirebaseApp.configure()

Amaç-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 gerektiren her bir görünümü için FIRAuth nesnesine bir dinleyici ekleyin. Bu dinleyici, kullanıcının oturum açma durumu değiştiğinde çağrılır.

Dinleyiciyi görünüm denetleyicisinin viewWillAppear yöntemine ekleyin:

Süratli

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Amaç-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

Ve görünüm denetleyicisinin viewWillDisappear yönteminde dinleyiciyi ayırın:

Süratli

Auth.auth().removeStateDidChangeListener(handle!)

Amaç-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

yeni kullanıcılar kaydet

Yeni kullanıcıların e-posta adreslerini ve parolalarını kullanarak uygulamanıza kaydolmasına olanak tanıyan bir form oluşturun. Bir kullanıcı formu doldurduğunda, kullanıcı tarafından sağlanan e-posta adresini ve parolayı doğrulayın, ardından bunları createUser yöntemine iletin:

Süratli

Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
  // ...
}

Amaç-C

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

Mevcut kullanıcılarda oturum açın

Mevcut kullanıcıların e-posta adreslerini ve şifrelerini kullanarak oturum açmalarına izin veren bir form oluşturun. Bir kullanıcı formu tamamladığında, signIn yöntemini çağırın:

Süratli

Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
  guard let strongSelf = self else { return }
  // ...
}

Amaç-C

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

Kullanıcı bilgilerini al

Bir kullanıcı başarıyla oturum açtıktan sonra, kullanıcı hakkında bilgi alabilirsiniz. Örneğin, kimlik doğrulama durumu dinleyicinizde :

Süratli

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 += " "
  }
  // ...
}

Amaç-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: