Apple Platforms'da Firebase ile Anonim olarak kimlik doğrulama

Geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication'ı kullanabilirsiniz. Firebase ile kimlik doğrulama. Bu geçici anonim hesaplar şu amaçlarla kullanılabilir: henüz uygulamanıza kaydolmamış kullanıcıların verilerle korunan verilerle çalışmasını sağlar izin verir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse: oturum açma kimlik bilgilerini anonimleştirerek koruma altındaki verilerle çalışmaya devam edebilmeleri için oturum açın.

Başlamadan önce

  1. 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.
  2. Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolunu kullanın.
  3. Anonim kimlik doğrulamayı etkinleştir:
    1. Firebase konsolunda Auth bölümünü açın.
    2. Sign-in Methods (Oturum Açma Yöntemleri) sayfasında, Anonymous (Anonim) oturum açma yöntemini kullanabilirsiniz.
    3. İsteğe bağlı: Projenizi Firebase Authentication with Identity Platform'u kullanıyorsanız otomatik temizlemeyi etkinleştirebilirsiniz. Zaman Bu ayarı etkinleştirdiğinizde, 30 günden daha eski anonim hesaplar otomatik olarak silindi. Otomatik temizlemenin etkin olduğu projelerde anonim kimlik doğrulama kullanım sınırlarına veya faturalandırma kotalarına dahil edilir. Görüntüleyin Otomatik temizlik.

Firebase ile anonim olarak kimlik doğrulama

Oturumu kapalı olan bir kullanıcı, Firebase'de, aşağıdaki adımları uygulayarak kullanıcının anonim olarak oturum açmasını sağlayın:

  1. FirebaseCore modülünü UIApplicationDelegate ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Şunu yapılandır: FirebaseApp paylaşılan örneğinizin application(_:didFinishLaunchingWithOptions:) yöntemi:

    SwiftUI

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

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturup bunu eklemeniz gerekir UIApplicationDelegateAdaptor veyaApp NSApplicationDelegateAdaptor. Uygulama yetkisi kaydırmayı da devre dışı bırakmanız gerekir. Örneğin, daha fazla bilgi için SwiftUI talimatlarına bakın.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. signInAnonymouslyWithCompletion: yöntemini çağırın:

    Swift

    Auth.auth().signInAnonymously { authResult, error in
      // ...
    }
    

    Objective-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  5. signInAnonymouslyWithCompletion: yöntemi tamamlanırsa hatasız olarak, anonim kullanıcının hesap verilerini FIRAuthDataResult nesne:

    Swift

    guard let user = authResult?.user else { return }
    let isAnonymous = user.isAnonymous  // true
    let uid = user.uid
    

    Objective-C

    FIRUser *user = authResult.user;
    BOOL isAnonymous = user.anonymous;  // YES
    NSString *uid = user.uid;
    

Anonim bir hesabı kalıcı hesaba dönüştürme

Anonim bir kullanıcı uygulamanıza kaydolduğunda, bu kişilerin uygulamanızı veya oyununuzu yeni hesabıyla çalışmaya devam edebilir. Örneğin, Kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yapma Yeni hesabının alışveriş sepetinde bulunabilir. Bunun için aşağıdaki adımları uygulayın: için şu adımları izleyin:

  1. Kullanıcı kaydolduğunda, kullanıcının hesabı için oturum açma akışını tamamlayın en az bir veya daha fazla yetkili olan bir FIRAuth.signInWith yöntemlerinden birini çağırın. Örneğin, kullanıcının Google kimliği jetonunu alın. Facebook erişim jetonu veya e-posta adresi ve şifre.
  2. Yeni kimlik doğrulama sağlayıcı için bir FIRAuthCredential alın:

    Google ile Oturum Açma
    Swift
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    Objective-C
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString
                                     accessToken:result.user.accessToken.tokenString];
    
    Facebook'a Giriş
    Swift
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    Objective-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    E-posta şifresiyle oturum açma
    Swift
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    Objective-C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. FIRAuthCredential nesnesini oturum açan kullanıcının cihazına iletin linkWithCredential:completion: yöntemi:

    Swift
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    Objective-C
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

linkWithCredential:completion: çağrısı başarılı olursa kullanıcının yeni hesabı: Anonim hesabın Firebase verilerine erişebilir.

Otomatik temizleme

Projenizi Kimlik Platformu ile Firebase Authentication'a yükselttiyseniz şunları yapabilirsiniz: Firebase konsolunda otomatik temizlemeyi etkinleştirin. Bu özelliği etkinleştirdiğinizde Firebase'in 30 günden daha eski anonim hesapları otomatik olarak silmesine olanak tanır. Otomatik kullanılan projelerde temizlik etkin olduğunda, anonim kimlik doğrulama kullanım sınırlarına veya faturalandırma kotalarına dahil edilmez.

  • Otomatik temizleme özelliği etkinleştirildikten sonra oluşturulan anonim hesaplar otomatik olarak silinebilir oluşturulduktan 30 gün sonra herhangi bir zamanda silinir.
  • Mevcut anonim hesaplar, 30 gün sonra otomatik olarak silinebilir. etkinleştirebilirsiniz.
  • Otomatik temizlemeyi kapatırsanız silinmesi planlanan tüm anonim hesaplar kalır silinmesi planlandı.
  • "Yükseltme" seçeneğini belirlerseniz herhangi bir oturum açma yöntemine bağlayarak anonim bir hesap üzerinde çalışırsanız otomatik olarak silinmez.

Bu özelliği etkinleştirmeden önce kaç kullanıcının etkileneceğini görmek istiyorsanız ve projenizi Kimlik Platformu ile Firebase Kimlik Doğrulaması'na geçirdiyseniz aşağıdaki ölçütlere göre filtreleyebilirsiniz: Cloud'da is_anon Günlük kaydı.

Sonraki adımlar

Kullanıcılar artık Firebase ile kimlik doğrulaması yapabildiğine göre Firebase veritabanınızdaki verileri kullanarak Firebase kuralları.