Apple প্ল্যাটফর্মে বেনামে Firebase দিয়ে প্রমাণীকরণ করুন

আপনি Firebase Authentication ব্যবহার করে Firebase দিয়ে অস্থায়ী বেনামী অ্যাকাউন্ট তৈরি করতে এবং প্রমাণীকরণ করতে পারেন। এই অস্থায়ী বেনামী অ্যাকাউন্টগুলি এমন ব্যবহারকারীদের জন্য ব্যবহার করা যেতে পারে যারা এখনও আপনার অ্যাপে সাইন আপ করেননি নিরাপত্তা নিয়ম দ্বারা সুরক্ষিত ডেটা ব্যবহার করতে। যদি কোনও বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন আপ করার সিদ্ধান্ত নেন, তাহলে আপনি তাদের সাইন-ইন শংসাপত্রগুলিকে বেনামী অ্যাকাউন্টের সাথে লিঙ্ক করতে পারেন যাতে তারা ভবিষ্যতের সেশনগুলিতে তাদের সুরক্ষিত ডেটা নিয়ে কাজ চালিয়ে যেতে পারে।

শুরু করার আগে

  1. ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

    1. Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, File > Add Packages- এ নেভিগেট করুন।
    2. অনুরোধ করা হলে, Firebase Apple platforms SDK সংগ্রহস্থল যোগ করুন:
    3.   https://github.com/firebase/firebase-ios-sdk.git
    4. Firebase Authentication লাইব্রেরিটি বেছে নিন।
    5. আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে -ObjC ফ্ল্যাগ যোগ করুন।
    6. শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।
  2. যদি আপনি এখনও আপনার অ্যাপটি আপনার Firebase প্রকল্পের সাথে সংযুক্ত না করে থাকেন, তাহলে Firebase কনসোল থেকে তা করুন।
  3. বেনামী প্রমাণীকরণ সক্ষম করুন:
    1. Firebase কনসোলে , Auth বিভাগটি খুলুন।
    2. সাইন-ইন পদ্ধতি পৃষ্ঠায়, বেনামী সাইন-ইন পদ্ধতি সক্ষম করুন।
    3. ঐচ্ছিক : যদি আপনি আপনার প্রকল্পটি Firebase Authentication with Identity Platform এ আপগ্রেড করে থাকেন, তাহলে আপনি স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করতে পারেন। এই সেটিংটি সক্ষম করলে, 30 দিনের বেশি পুরনো বেনামী অ্যাকাউন্টগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে। স্বয়ংক্রিয় ক্লিন-আপ সক্ষম থাকা প্রকল্পগুলিতে, বেনামী প্রমাণীকরণ আর ব্যবহারের সীমা বা বিলিং কোটার জন্য গণনা করা হবে না। স্বয়ংক্রিয় ক্লিন-আপ দেখুন।

বেনামে Firebase দিয়ে প্রমাণীকরণ করুন

যখন একজন সাইন-আউট ব্যবহারকারী এমন একটি অ্যাপ বৈশিষ্ট্য ব্যবহার করেন যার জন্য Firebase-এর মাধ্যমে প্রমাণীকরণ প্রয়োজন, তখন নিম্নলিখিত পদক্ষেপগুলি সম্পন্ন করে ব্যবহারকারীকে বেনামে সাইন ইন করুন:

  1. আপনার UIApplicationDelegateFirebaseCore মডিউলটি আমদানি করুন, সেইসাথে আপনার অ্যাপ প্রতিনিধিদের দ্বারা ব্যবহৃত অন্য যেকোনো Firebase মডিউল । উদাহরণস্বরূপ, Cloud Firestore এবং Authentication ব্যবহার করতে:

    সুইফটইউআই

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

    সুইফট

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    অবজেক্টিভ-সি

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. আপনার অ্যাপ ডেলিগেটের application(_:didFinishLaunchingWithOptions:) পদ্ধতিতে একটি FirebaseApp শেয়ার করা ইনস্ট্যান্স কনফিগার করুন:

    সুইফটইউআই

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

    সুইফট

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

    অবজেক্টিভ-সি

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. যদি আপনি SwiftUI ব্যবহার করেন, তাহলে আপনাকে একটি অ্যাপ্লিকেশন ডেলিগেট তৈরি করতে হবে এবং UIApplicationDelegateAdaptor অথবা NSApplicationDelegateAdaptor এর মাধ্যমে আপনার App স্ট্রাক্টের সাথে এটি সংযুক্ত করতে হবে। আপনাকে অ্যাপ ডেলিগেট সুইজলিংও অক্ষম করতে হবে। আরও তথ্যের জন্য, 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: পদ্ধতিতে কল করুন:

    সুইফট

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

    অবজেক্টিভ-সি

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
  5. যদি 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 টোকেন, Facebook অ্যাক্সেস টোকেন, অথবা ইমেল ঠিকানা এবং পাসওয়ার্ড পান।
  2. নতুন প্রমাণীকরণ প্রদানকারীর জন্য একটি FIRAuthCredential পান:

    গুগল সাইন-ইন
    সুইফট
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    অবজেক্টিভ-সি
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString
                                     accessToken:result.user.accessToken.tokenString];
    ফেসবুক লগইন
    সুইফট
    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. সাইন-ইন ব্যবহারকারীর linkWithCredential:completion: পদ্ধতিতে FIRAuthCredential অবজেক্টটি পাস করুন:

    সুইফট
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    অবজেক্টিভ-সি
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];

যদি linkWithCredential:completion: এ কলটি সফল হয়, তাহলে ব্যবহারকারীর নতুন অ্যাকাউন্টটি বেনামী অ্যাকাউন্টের Firebase ডেটা অ্যাক্সেস করতে পারবে।

স্বয়ংক্রিয় পরিষ্কার-পরিচ্ছন্নতা

যদি আপনি আপনার প্রকল্পটি Firebase Authentication with Identity Platform এ আপগ্রেড করে থাকেন, তাহলে আপনি Firebase কনসোলে স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করতে পারবেন। যখন আপনি এই বৈশিষ্ট্যটি সক্ষম করবেন তখন আপনি Firebase কে 30 দিনের বেশি পুরানো বেনামী অ্যাকাউন্টগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলার অনুমতি দেবেন। স্বয়ংক্রিয় ক্লিন-আপ সক্ষম থাকা প্রকল্পগুলিতে, বেনামী প্রমাণীকরণ ব্যবহারের সীমা বা বিলিং কোটার জন্য গণনা করা হবে না।

  • স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করার পরে তৈরি করা যেকোনো বেনামী অ্যাকাউন্ট তৈরির 30 দিন পরে যেকোনো সময় স্বয়ংক্রিয়ভাবে মুছে ফেলা হতে পারে।
  • স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করার 30 দিন পরে বিদ্যমান বেনামী অ্যাকাউন্টগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলার যোগ্য হবে।
  • যদি আপনি স্বয়ংক্রিয় ক্লিন-আপ বন্ধ করেন, তাহলে মুছে ফেলার জন্য নির্ধারিত যেকোনো বেনামী অ্যাকাউন্ট মুছে ফেলার জন্য নির্ধারিত থাকবে।
  • যদি আপনি কোনও বেনামী অ্যাকাউন্টকে যেকোনো সাইন-ইন পদ্ধতির সাথে লিঙ্ক করে "আপগ্রেড" করেন, তাহলে অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে মুছে যাবে না।

এই বৈশিষ্ট্যটি সক্ষম করার আগে যদি আপনি দেখতে চান যে কতজন ব্যবহারকারী প্রভাবিত হবে, এবং আপনি আপনার প্রকল্পটি Firebase Authentication with Identity Platform এ আপগ্রেড করেছেন, তাহলে আপনি Cloud Loggingis_anon দ্বারা ফিল্টার করতে পারেন।

পরবর্তী পদক্ষেপ

এখন যেহেতু ব্যবহারকারীরা Firebase দিয়ে প্রমাণীকরণ করতে পারেন, আপনি Firebase নিয়ম ব্যবহার করে আপনার Firebase ডাটাবেসে ডেটাতে তাদের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।