ফায়ারবেসে ব্যবহারকারীদের পরিচালনা করুন

একটি ব্যবহারকারী তৈরি করুন

আপনি কল করে আপনার Firebase প্রকল্পে নতুন ব্যবহারকারী তৈরি CreateUserWithEmailAndPassword পদ্ধতি বা এর মত ফেডারেট পরিচয় প্রদানকারী ব্যবহার প্রথমবারের জন্য একটি ব্যবহারকারী সাইন ইন করে Google সাইন-ইন বা ফেসবুক লগইন

এছাড়াও আপনি এর প্রমাণীকরণ অধ্যায় থেকে নতুন পাসওয়ার্ড-প্রামাণ ব্যবহারকারীদের তৈরি করতে পারেন Firebase কনসোল , ব্যবহারকারীরা পৃষ্ঠাতে।

বর্তমানে সাইন ইন করা ব্যবহারকারী পান

বর্তমান ব্যবহারকারীকে পাওয়ার প্রস্তাবিত উপায় হল Auth অবজেক্টে একজন শ্রোতা সেট করে:

class MyAuthStateListener : public firebase::auth::AuthStateListener {
 public:
  void OnAuthStateChanged(firebase::auth::Auth* auth) override {
    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      // User is signed in
      printf("OnAuthStateChanged: signed_in %s\n", user->uid().c_str());
    } else {
      // User is signed out
      printf("OnAuthStateChanged: signed_out\n");
    }
    // ...
  }
};
// ... initialization code
// Test notification on registration.
MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);

একজন শ্রোতা ব্যবহার করে, আপনি নিশ্চিত করেন যে Auth অবজেক্টটি একটি মধ্যবর্তী অবস্থায় নেই—যেমন আরম্ভ করা—যখন আপনি বর্তমান ব্যবহারকারী পাবেন।

এছাড়াও আপনি কল করে পেতে পারেন বর্তমানে সাইন ইন করা ব্যবহারকারীকে current_user । একটি ব্যবহারকারী সাইন ইন করা না থাকলে, current_user আয় nullptr।

ব্যবহারকারীর শংসাপত্র বজায় রাখুন

ব্যবহারকারী সাইন ইন করার পরে ব্যবহারকারীর শংসাপত্রগুলি স্থানীয় কীস্টোরে সংরক্ষণ করা হবে৷ ব্যবহারকারীকে সাইন আউট করার মাধ্যমে ব্যবহারকারীর শংসাপত্রের স্থানীয় ক্যাশে মুছে ফেলা যেতে পারে৷ কীস্টোরটি প্ল্যাটফর্ম নির্দিষ্ট:

একটি ব্যবহারকারীর প্রোফাইল পান

কোন ব্যবহারকারীর প্রোফাইলে তথ্য পাওয়ার জন্য, একটি দৃষ্টান্ত এর অ্যাকসেসর পদ্ধতি ব্যবহার firebase::auth::User । উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();
if (user != nullptr) {
  std::string name = user->display_name();
  std::string email = user->email();
  std::string photo_url = user->photo_url();
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use firebase::auth::User::Token() instead.
  std::string uid = user->uid();
}

ব্যবহারকারীর প্রদানকারী-নির্দিষ্ট প্রোফাইল তথ্য পান

থেকে উদ্ধার প্রোফাইল তথ্য পেতে সাইন-ইন একটি ব্যবহারকারী লিঙ্ক প্রদানকারীর ব্যবহার ProviderData পদ্ধতি। উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();
if (user != nullptr) {
  for (auto it = user->provider_data().begin();
       it != user->provider_data().end(); ++it) {
    firebase::auth::UserInfoInterface* profile = *it;
    // Id of the provider (ex: google.com)
    std::string providerId = profile->provider_id();

    // UID specific to the provider
    std::string uid = profile->uid();

    // Name, email address, and profile photo Url
    std::string name = profile->display_name();
    std::string email = profile->email();
    std::string photoUrl = profile->photo_url();
  }
}

একজন ব্যবহারকারীর প্রোফাইল আপডেট করুন

আপনি একটি ব্যবহারকারীর মৌলিক প্রোফাইল তথ্য-ব্যবহারকারীর প্রদর্শন নাম এবং প্রোফাইল ফটো URL-সঙ্গে আপডেট করতে পারেন UpdateUserProfile পদ্ধতি। উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();
if (user != nullptr) {
  firebase::auth::User::UserProfile profile;
  profile.display_name = "Jane Q. User";
  profile.photo_url = "https://example.com/jane-q-user/profile.jpg";
  user->UpdateUserProfile(profile).OnCompletion(
      [](const firebase::Future<void>& completed_future, void* user_data) {
        // We are probably in a different thread right now.
        if (completed_future.error() == 0) {
          printf("User profile updated.");
        }
      },
      nullptr);  // pass user_data here.
}

একটি ব্যবহারকারীর ইমেল ঠিকানা সেট করুন

আপনার সাথে একটি ব্যবহারকারীর ইমেইল ঠিকানা সেট করতে পারেন UpdateEmail পদ্ধতি। উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();
if (user != nullptr) {
  user->UpdateEmail("user@example.com")
      .OnCompletion(
          [](const firebase::Future<void>& completed_future,
             void* user_data) {
            // We are probably in a different thread right now.
            if (completed_future.error() == 0) {
              printf("User email address updated.");
            }
          },
          nullptr);
}

একজন ব্যবহারকারীকে একটি যাচাইকরণ ইমেল পাঠান

আপনার সাথে একটি ব্যবহারকারী একটি ঠিকানা যাচাইকরণ ইমেল পাঠাতে পারেন SendEmailVerification পদ্ধতি। উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();
if (user != nullptr) {
  user->SendEmailVerification().OnCompletion(
      [](const firebase::Future<void>& completed_future, void* user_data) {
        // We are probably in a different thread right now.
        if (completed_future.error() == 0) {
          printf("Email sent.");
        }
      },
      nullptr);
}

আপনি যে এর প্রমাণীকরণ অধ্যায় ব্যবহার করা হয় ইমেইল টেমপ্লেট কাস্টমাইজ করতে পারেন Firebase কনসোল , ইমেইল টেমপ্লেট পৃষ্ঠাতে। দেখুন ইমেইল টেমপ্লেট Firebase সহায়তা কেন্দ্রে।

ব্যবহারকারীর পাসওয়ার্ড সেট করুন

আপনার সাথে একটি ব্যবহারকারীর পাসওয়ার্ড সেট করতে পারেন UpdatePassword পদ্ধতি। উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();
std::string newPassword = "SOME-SECURE-PASSWORD";

if (user != nullptr) {
  user->UpdatePassword(newPassword.c_str())
      .OnCompletion(
          [](const firebase::Future<void>& completed_future,
             void* user_data) {
            // We are probably in a different thread right now.
            if (completed_future.error() == 0) {
              printf("password updated.");
            }
          },
          nullptr);
}

একটি পাসওয়ার্ড রিসেট ইমেল পাঠান

আপনার সাথে একটি ব্যবহারকারী একটি পাসওয়ার্ড রিসেট ইমেল পাঠাতে পারে SendPasswordResetEmail পদ্ধতি। উদাহরণ স্বরূপ:

std::string emailAddress = "user@example.com";

auth->SendPasswordResetEmail(emailAddress.c_str())
    .OnCompletion(
        [](const firebase::Future<void>& completed_future,
           void* user_data) {
          // We are probably in a different thread right now.
          if (completed_future.error() == 0) {
            // Email sent.
          } else {
            // An error happened.
            printf("Error %d: %s", completed_future.error(),
                   completed_future.error_message());
          }
        },
        nullptr);

আপনি যে এর প্রমাণীকরণ অধ্যায় ব্যবহার করা হয় ইমেইল টেমপ্লেট কাস্টমাইজ করতে পারেন Firebase কনসোল , ইমেইল টেমপ্লেট পৃষ্ঠাতে। দেখুন ইমেইল টেমপ্লেট Firebase সহায়তা কেন্দ্রে।

এছাড়াও আপনি Firebase কনসোল থেকে পাসওয়ার্ড রিসেট ইমেল পাঠাতে পারেন।

একটি ব্যবহারকারী মুছুন

আপনার সাথে একটি ব্যবহারকারী অ্যাকাউন্ট মুছে ফেলতে পারেন Delete পদ্ধতি। উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();
if (user != nullptr) {
  user->Delete().OnCompletion(
      [](const firebase::Future<void>& completed_future, void* user_data) {
        if (completed_future.error() == 0) {
          // User deleted.
        } else {
          // An error happened.
          printf("Error %d: %s", completed_future.error(),
                 completed_future.error_message());
        }
      },
      nullptr);
}

আপনি এছাড়াও প্রমাণীকরণ অধ্যায় থেকে মুছে ব্যবহারকারীদের Firebase কনসোল , ব্যবহারকারীরা পৃষ্ঠাতে।

একজন ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করুন

কিছু নিরাপত্তা সংবেদনশীল কর্ম-যেমন একটি অ্যাকাউন্ট মোছার , একটি প্রাথমিক ইমেল ঠিকানা সেট , এবং একটি পাসওয়ার্ড পরিবর্তন -require ব্যবহারকারী সম্প্রতি স্বাক্ষর করেছে। এইসব ক্রিয়ার মধ্যে একটি সঞ্চালন, এবং ব্যবহারকারী আগে, অত্যন্ত দীর্ঘ সাইন ইন তাহলে কর্ম ব্যর্থ হয়

যখন এটি ঘটে, নতুন সাইন-ইন ব্যবহারকারী থেকে পরিচয়পত্র পাওয়া এবং শংসাপত্রগুলি ক্ষণস্থায়ী দ্বারা ব্যবহারকারীর পুনরায় প্রমাণীকরণ Reauthenticate । উদাহরণ স্বরূপ:

firebase::auth::User* user = auth->current_user();

// Get auth credentials from the user for re-authentication. The example
// below shows email and password credentials but there are multiple
// possible providers, such as GoogleAuthProvider or FacebookAuthProvider.
firebase::auth::Credential credential =
    firebase::auth::EmailAuthProvider::GetCredential("user@example.com",
                                                     "password1234");

if (user != nullptr) {
  user->Reauthenticate(credential)
      .OnCompletion(
          [](const firebase::Future<void>& completed_future,
             void* user_data) {
            if (completed_future.error() == 0) {
              printf("User re-authenticated.");
            }
          },
          nullptr);
}

ব্যবহারকারীর অ্যাকাউন্ট আমদানি করুন

আপনি Firebase CLI এর ব্যবহার করে আপনার Firebase প্রকল্পে একটি ফাইল থেকে ব্যবহারকারীর অ্যাকাউন্ট আমদানি করতে পারেন auth:import কমান্ড। উদাহরণ স্বরূপ:

firebase auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14