احراز هویت با Firebase ناشناس در iOS

می توانید از احراز هویت Firebase برای ایجاد و استفاده از حساب های ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حساب های ناشناس موقت می توان استفاده کرد تا به کاربرانی که هنوز در برنامه شما ثبت نام نکرده اند اجازه دهد با داده های محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم می گیرد به ثبت نام برای برنامه خود را، شما می توانید ورود به سیستم خود اعتبار به حساب ناشناس پیوند به طوری که آنها می توانند به کار با داده های حفاظت شده خود در جلسات آینده ادامه خواهد داد.

قبل از اینکه شروع کنی

  1. اضافه کردن فایربیس به پروژه های iOS خود را .
  2. شامل غلاف زیر را در خود Podfile :
    pod 'Firebase/Auth'
    
  3. اگر هنوز برنامه خود را متصل به پروژه فایربیس شما نیست، انجام این کار از کنسول فایربیس .
  4. نوشتن ناشناس را فعال کنید:
    1. در فایربیس کنسول ، باز کردن بخش تایید.
    2. بر روی ثبت نام در روش صفحه، فعال کردن ناشناس ورود به سیستم روش.

با Firebase به صورت ناشناس احراز هویت کنید

هنگامی که کاربر خارج از سیستم از ویژگی برنامه ای استفاده می کند که نیاز به احراز هویت با Firebase دارد ، با انجام مراحل زیر ، کاربر را به صورت ناشناس وارد کنید:

  1. واردات ماژول فایربیس خود را UIApplicationDelegate :

    سریع

    import Firebase

    هدف-ج

    @import Firebase;
  2. پیکربندی FirebaseApp عنوان مثال مشترک، به طور معمول در برنامه شما application:didFinishLaunchingWithOptions: روش:

    سریع

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

    هدف-ج

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. تماس با signInAnonymouslyWithCompletion: روش:

    سریع

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

    هدف-ج

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. اگر signInAnonymouslyWithCompletion: کامل روش بدون خطا، شما می توانید اطلاعات حساب کاربر ناشناس از گرفتن FIRAuthDataResult شی:

    سریع

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

    هدف-ج

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

تبدیل یک حساب ناشناس به یک حساب دائمی

وقتی یک کاربر ناشناس در برنامه شما ثبت نام می کند ، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - به عنوان مثال ، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام در سبد خرید خود اضافه کرده است ، در برنامه جدید خود در دسترس قرار دهید. سبد خرید حساب برای انجام این کار ، مراحل زیر را تکمیل کنید:

  1. وقتی که کاربر تا تکمیل جریان ورود به سیستم برای ارائه دهنده احراز هویت کاربر به، اما نه از جمله، خواستار یکی از FIRAuth.signInWith روش. به عنوان مثال ، نشان کاربر Google ID ، رمز دسترسی فیس بوک یا آدرس ایمیل و رمز عبور را دریافت کنید.
  2. دریافت یک FIRAuthCredential برای ارائه دهنده احراز هویت جدید:

    ورود به سیستم Google
    سریع
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    هدف-ج
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    ورود به فیس بوک
    سریع
    let credential = FacebookAuthProvider
      .credential(withAccessToken: AccessToken.current!.tokenString)
    
    هدف-ج
    FIRAuthCredential *credential = [FIRFacebookAuthProvider
        credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
    
    ورود ایمیل-رمز ورود
    سریع
    let credential = EmailAuthProvider.credential(withEmail: email, password: password)
    
    هدف-ج
    FIRAuthCredential *credential =
        [FIREmailAuthProvider credentialWithEmail:email
                                                 password:password];
    
  3. رمز عبور FIRAuthCredential شیء را به ثبت نام در کاربر linkWithCredential:completion: روش:

    سریع
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    هدف-ج
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

اگر پاسخ به linkWithCredential:completion: موفق شود، حساب کاربری جدید کاربر می تواند داده ها فایربیس حساب ناشناس دسترسی داشته باشید.

مراحل بعدی

حالا که کاربران می توانند با Firebase تصدیق، شما می توانید دسترسی آنها به داده ها در پایگاه داده Firebase خود با استفاده از کنترل قوانین فایربیس .