C++ এ Firebase প্রমাণীকরণের সাথে শুরু করুন

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

আপনার C++ প্রকল্পটি Firebase-এ সংযুক্ত করুন

আপনি Firebase Authentication ব্যবহার করার আগে, আপনাকে করতে হবে:

  • আপনার C++ প্রজেক্ট নিবন্ধন করুন এবং Firebase ব্যবহার করতে কনফিগার করুন।

    যদি আপনার C++ প্রোজেক্ট ইতিমধ্যেই Firebase ব্যবহার করে, তাহলে এটি ইতিমধ্যেই Firebase-এর জন্য নিবন্ধিত এবং কনফিগার করা আছে।

  • আপনার C++ প্রকল্পে Firebase C++ SDK যোগ করুন।

মনে রাখবেন যে আপনার C++ প্রোজেক্টে Firebase যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা C++ প্রজেক্টে উভয় কাজ জড়িত থাকে (উদাহরণস্বরূপ, আপনি কনসোল থেকে Firebase কনফিগার ফাইলগুলি ডাউনলোড করেন, তারপর সেগুলিকে আপনার C++ প্রকল্পে নিয়ে যান)।

নতুন ব্যবহারকারীদের সাইন আপ করুন

একটি ফর্ম তৈরি করুন যা নতুন ব্যবহারকারীদের তাদের ইমেল ঠিকানা এবং একটি পাসওয়ার্ড ব্যবহার করে আপনার অ্যাপে নিবন্ধন করতে দেয়৷ যখন একজন ব্যবহারকারী ফর্মটি পূরণ করেন, তখন ব্যবহারকারীর দেওয়া ইমেল ঠিকানা এবং পাসওয়ার্ড যাচাই করুন, তারপর CreateUserWithEmailAndPassword পদ্ধতিতে পাঠান:

firebase::Future<firebase::auth::AuthResult> result =
    auth->CreateUserWithEmailAndPassword(email, password);

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

উদাহরণস্বরূপ, একটি ভবিষ্যত ব্যবহার করে:

firebase::Future<firebase::auth::AuthResult> result =
    auth->CreateUserWithEmailAndPasswordLastResult();

// The lambda has the same signature as the callback function.
result.OnCompletion(
    [](const firebase::Future<firebase::auth::AuthResult>& result,
       void* user_data) {
      // `user_data` is the same as &my_program_context, below.
      // Note that we can't capture this value in the [] because std::function
      // is not supported by our minimum compiler spec (which is pre C++11).
      MyProgramContext* program_context =
          static_cast<MyProgramContext*>(user_data);

      // Process create user result...
      (void)program_context;
    },
    &my_program_context);

অথবা, পোলিং ব্যবহার করতে, আপনার গেমের আপডেট লুপে নিম্নলিখিত উদাহরণের মতো কিছু করুন:

firebase::Future<firebase::auth::AuthResult> result =
    auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::auth::kAuthErrorNone) {
    firebase::auth::AuthResult* auth_result = *result.result();
    printf("Create user succeeded for email %s\n", auth_result.user.email().c_str());
  } else {
    printf("Created user failed with error '%s'\n", result.error_message());
  }
}

বিদ্যমান ব্যবহারকারীদের সাইন ইন করুন

একটি ফর্ম তৈরি করুন যা বিদ্যমান ব্যবহারকারীদের তাদের ইমেল ঠিকানা এবং পাসওয়ার্ড ব্যবহার করে সাইন ইন করতে দেয়৷ যখন একজন ব্যবহারকারী ফর্মটি পূরণ করেন, তখন SignInWithEmailAndPassword পদ্ধতিতে কল করুন:

firebase::Future<firebase::auth::AuthResult> result =
    auth->SignInWithEmailAndPassword(email, password);

আপনি সাইন-আপ ফলাফল যেভাবে পেয়েছেন সাইন-ইন অপারেশনের ফলাফল পান।

একটি প্রমাণীকরণ রাষ্ট্র শ্রোতা সেট করুন এবং অ্যাকাউন্ট ডেটা পান

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

firebase::auth::AuthStateListener বিমূর্ত ক্লাস বাস্তবায়ন করে শ্রোতা তৈরি করুন। উদাহরণস্বরূপ, একজন শ্রোতা তৈরি করতে যা ব্যবহারকারীর সম্পর্কে তথ্য পায় যখন একজন ব্যবহারকারী সফলভাবে সাইন ইন করেন:

class MyAuthStateListener : public firebase::auth::AuthStateListener {
 public:
  void OnAuthStateChanged(firebase::auth::Auth* auth) override {
    firebase::auth::User user = auth.current_user();
    if (user.is_valid()) {
      // User is signed in
      printf("OnAuthStateChanged: signed_in %s\n", user.uid().c_str());
      const std::string displayName = user.DisplayName();
      const std::string emailAddress = user.Email();
      const std::string photoUrl = user.PhotoUrl();
    } else {
      // User is signed out
      printf("OnAuthStateChanged: signed_out\n");
    }
    // ...
  }
};

firebase::auth::Auth অবজেক্টের AddAuthStateListener পদ্ধতির সাথে শ্রোতাকে সংযুক্ত করুন:

MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);

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

অন্যান্য পরিচয় প্রদানকারী এবং বেনামী অতিথি অ্যাকাউন্টগুলির জন্য কীভাবে সমর্থন যোগ করবেন তা জানুন: