Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

iOS'ta Firebase Authentication'ı Kullanmaya Başlayın

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

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

  1. Firebase SDK'yı yükleyin .
  2. In Firebase konsolunda , sizin Firebase projeye uygulamanızı ekleyin.

Uygulamanıza Firebase Kimlik Doğrulaması ekleyin

  1. Projenizin için Firebase Kimlik Doğrulaması için bağımlılık ekle Podfile :

    pod 'Firebase/Auth'
    
  2. Çalıştır pod install ve oluşturulan açmak .xcworkspace dosyasını.

(İ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 araçtan bahsedelim: 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 modellerini denemek veya oturum açma UI tasarımlarını prototiplemek istiyorsanız, canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir. .

Bir 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ünülmüş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlayan Yerel Öykünücü Paketi'nin 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. Çalışan yerel proje dizininin kökü itibaren firebase emulators:start .
  3. Etkileşimli prototip oluşturma için Yerel Öykünücü Paketi Kullanıcı Arabirimi'ni veya etkileşimli olmayan testler için Kimlik Doğrulama öykünücüsü REST API'sini kullanma.

Ayrıntılı bir kılavuz mevcuttur Connect'e Doğrulama emülatörü için uygulama . Daha fazla bilgi için, bkz Yerel Emülatörü Suite giriş .

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

Firebase SDK'sını başlatın

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

Süratli

import Firebase

Amaç-C

@import Firebase;

Daha sonra, içinde application:didFinishLaunchingWithOptions: yöntem, başlatma FirebaseApp nesne:

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 görüşlerin her biri için bu konuda ihtiyaç bilgiler oturum açmış kullanıcının, bir dinleyici takmak FIRAuth nesne. Bu dinleyici, kullanıcının oturum açma durumu her değiştiğinde çağrılır.

Görünüşüdür denetleyicisinin içinde dinleyicinin takın viewWillAppear yöntemi:

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ü kontrolörün içinde dinleyici ayırmak viewWillDisappear yöntemiyle:

Süratli

Auth.auth().removeStateDidChangeListener(handle!)

Amaç-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Yeni kullanıcılar kaydolun

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 tamamladığında, kullanıcı tarafından sağlanan e-posta adresini ve şifreyi doğrulamak ardından onları geçmek createUser yöntemiyle:

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 parolalarını kullanarak oturum açmalarına olanak tanıyan bir form oluşturun. Bir kullanıcı formu tamamladığında, çağrı signIn yöntemi:

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, içinde kimlik doğrulama devlet dinleyici :

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: