C++ ব্যবহার করে বেনামে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন

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

তুমি শুরু করার আগে

  1. আপনার C++ প্রকল্পে Firebase যোগ করুন
  2. আপনি যদি এখনও আপনার অ্যাপটিকে আপনার Firebase প্রকল্পের সাথে সংযুক্ত না করে থাকেন, তাহলে Firebase কনসোল থেকে তা করুন৷
  3. বেনামী প্রমাণীকরণ সক্ষম করুন:
    1. Firebase কনসোলে , Auth বিভাগটি খুলুন।
    2. সাইন-ইন পদ্ধতি পৃষ্ঠায়, বেনামী সাইন-ইন পদ্ধতি সক্ষম করুন।
    3. ঐচ্ছিক : আপনি যদি আপনার প্রোজেক্টকে আইডেন্টিটি প্ল্যাটফর্মের সাথে ফায়ারবেস প্রমাণীকরণে আপগ্রেড করে থাকেন, তাহলে আপনি স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করতে পারেন। আপনি যখন এই সেটিংটি সক্ষম করবেন, 30 দিনের বেশি পুরানো বেনামী অ্যাকাউন্টগুলি স্বয়ংক্রিয়ভাবে মুছে যাবে৷ স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করা প্রকল্পগুলিতে, বেনামী প্রমাণীকরণ আর ব্যবহার সীমা বা বিলিং কোটার জন্য গণনা করা হবে না। স্বয়ংক্রিয় পরিষ্কার-আপ দেখুন।

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

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

Auth ক্লাস হল সমস্ত API কলের গেটওয়ে।
  1. Auth এবং অ্যাপ হেডার ফাইল যোগ করুন:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. আপনার ইনিশিয়ালাইজেশন কোডে, একটি firebase::App ক্লাস তৈরি করুন।
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. আপনার firebase::App এর জন্য firebase::auth::Auth ক্লাস অর্জন করুন। App এবং Auth এর মধ্যে ওয়ান-টু-ওয়ান ম্যাপিং আছে।
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • কল Auth::SignInAnonymously
    firebase::Future<firebase::auth::AuthResult> result =
        auth->SignInAnonymously();
    
  • যদি আপনার প্রোগ্রামে একটি আপডেট লুপ থাকে যা নিয়মিত চলে (বলুন প্রতি সেকেন্ডে 30 বা 60 বার), আপনি Auth::SignInAnonymouslyLastResult :
    firebase::Future<firebase::auth::AuthResult> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::AuthResult auth_result = *result.result();
        printf("Sign in succeeded for `%s`\n",
               auth_result.user.display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    দিয়ে আপডেট প্রতি একবার ফলাফল পরীক্ষা করতে পারেন অথবা, যদি আপনার প্রোগ্রাম ইভেন্ট চালিত হয়, আপনি পছন্দ করতে পারেন ভবিষ্যতে একটি কলব্যাক নিবন্ধন করতে।
  • একটি বেনামী অ্যাকাউন্ট একটি স্থায়ী অ্যাকাউন্টে রূপান্তর করুন

    যখন একজন বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন আপ করেন, তখন আপনি তাদের নতুন অ্যাকাউন্ট দিয়ে তাদের কাজ চালিয়ে যাওয়ার অনুমতি দিতে চাইতে পারেন—উদাহরণস্বরূপ, ব্যবহারকারীরা তাদের নতুন অ্যাকাউন্টে সাইন আপ করার আগে আপনি তাদের শপিং কার্টে যোগ করা আইটেমগুলি তৈরি করতে চাইতে পারেন। অ্যাকাউন্টের শপিং কার্ট। এটি করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

    1. যখন ব্যবহারকারী সাইন আপ করেন, তখন ব্যবহারকারীর প্রমাণীকরণ প্রদানকারীর জন্য সাইন-ইন প্রবাহ সম্পূর্ণ করুন, কিন্তু অন্তর্ভুক্ত না করে, Auth::SignInWith পদ্ধতিগুলির একটিতে কল করুন৷ উদাহরণস্বরূপ, ব্যবহারকারীর গুগল আইডি টোকেন, ফেসবুক অ্যাক্সেস টোকেন বা ইমেল ঠিকানা এবং পাসওয়ার্ড পান।
    2. নতুন প্রমাণীকরণ প্রদানকারীর জন্য একটি auth::Credential পান:

      Google সাইন-ইন
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      Facebook লগইন
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      ইমেল-পাসওয়ার্ড সাইন-ইন
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
    3. সাইন-ইন ব্যবহারকারীর LinkWithCredential পদ্ধতিতে auth::Credential অবজেক্ট পাস করুন:

      // Link the new credential to the currently active user.
      firebase::auth::User current_user = auth->current_user();
      firebase::Future<firebase::auth::AuthResult> result =
          current_user.LinkWithCredential(credential);
      

    LinkWithCredential এ কল সফল হলে, ব্যবহারকারীর নতুন অ্যাকাউন্ট বেনামী অ্যাকাউন্টের Firebase ডেটা অ্যাক্সেস করতে পারে।

    স্বয়ংক্রিয় ক্লিন-আপ

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

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

    আপনি যদি দেখতে চান যে আপনি এই বৈশিষ্ট্যটি সক্ষম করার আগে কতজন ব্যবহারকারী প্রভাবিত হবেন, এবং আপনি আপনার প্রকল্পটিকে আইডেন্টিটি প্ল্যাটফর্মের সাথে Firebase প্রমাণীকরণে আপগ্রেড করেছেন, আপনি Cloud Logging-is_anon দ্বারা ফিল্টার করতে পারেন।

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

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