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 ile Anonim Olarak Kimlik Doğrulama

Firebase ile kimlik doğrulaması yapmak üzere geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication'ı kullanabilirsiniz. Bu geçici anonim hesaplar, uygulamanıza henüz kaydolmamış kullanıcıların güvenlik kurallarıyla korunan verilerle çalışmasına izin vermek için kullanılabilir. Anonim bir kullanıcı uygulama kaydolmak karar verirse yapabilirsiniz anonim hesabına oturum açma kimlik bilgilerini kendi bağlantı gelecek oturumlarda kendi korumalı verilerle çalışmak için devam edebilmesi için.

Sen başlamadan önce

  1. İOS projeye Firebase ekleyin .
  2. Senin şu bakla ekleyin Podfile :
    pod 'Firebase/Auth'
    
  3. Henüz Firebase projesine uygulamanızı bağlı değil varsa, gelen bunu Firebase konsoluna .
  4. Anonim yetkilendirmeyi etkinleştir:
    1. In Firebase konsoluna , Auth bölümünü açın.
    2. Yöntemler Oturum Açma sayfasında, Anonim oturum açma yöntemine sağlar.

Firebase ile anonim olarak kimlik doğrulaması yapın

Oturumu kapatmış bir kullanıcı, Firebase ile kimlik doğrulaması gerektiren bir uygulama özelliği kullandığında, aşağıdaki adımları tamamlayarak kullanıcıda anonim olarak oturum açın:

  1. Sizin de Firebase modülü içe UIApplicationDelegate :

    Süratli

    import Firebase

    Amaç-C

    @import Firebase;
  2. Yapılandırma bir FirebaseApp tipik uygulamanızın içinde, örnek paylaşılan application:didFinishLaunchingWithOptions: yöntemi:

    Süratli

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

    Amaç-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Çağrı signInAnonymouslyWithCompletion: yöntemi:

    Süratli

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

    Amaç-C

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. Eğer signInAnonymouslyWithCompletion: hatasız yöntem tamamlanıncaya, aralarından anonim kullanıcının hesap verilerini alabilirsiniz FIRAuthDataResult nesnesi:

    Süratli

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

    Amaç-C

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

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

Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesaplarıyla çalışmalarına devam etmelerine izin vermek isteyebilirsiniz; örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yeni hesaplarında kullanılabilir hale getirmek isteyebilirsiniz. hesabın alışveriş sepeti. Bunu yapmak için aşağıdaki adımları tamamlayın:

  1. Kullanıcı kayıt oturum açma kullanıcının kimlik doğrulama sağlayıcısı yukarı için akış tamamlamak ancak birini çağırarak, dahil değil zaman FIRAuth.signInWith yöntemlerle. Örneğin, kullanıcının Google ID jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın.
  2. Bir alın FIRAuthCredential yeni kimlik doğrulama sağlayıcısı için:

    Google Oturum Açma
    Süratli
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    Amaç-C
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    Facebook Girişi
    Süratli
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    Amaç-C
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    E-posta-şifre oturum açma
    Süratli
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    Amaç-C
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. Geçiş FIRAuthCredential kullanıcının oturum açma-nesneyi linkWithCredential:completion: yöntem:

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

Çağrısı Eğer linkWithCredential:completion: başarır, kullanıcının yeni hesap anonim hesabın Firebase verilere erişebilir.

Sonraki adımlar

Artık kullanıcılar Firebase ile kimlik doğrulaması ki, sen kullanarak Firebase veritabanındaki verilere erişimlerini kontrol edebilirsiniz Firebase kuralları .