Firebase-এ ব্যবহারকারীদের পরিচালনা করুন

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

আপনার Firebase প্রজেক্টে নতুন ইউজার তৈরি করতে আপনি ` createUser মেথডটি কল করতে পারেন, অথবা গুগল সাইন-ইন বা ফেসবুক লগইনের মতো কোনো ফেডারেটেড আইডেন্টিটি প্রোভাইডার ব্যবহার করে প্রথমবারের মতো কোনো ইউজারকে সাইন ইন করাতে পারেন।

এছাড়াও আপনি Firebase কনসোলের Authentication সেকশনের Users পেজ থেকে নতুন পাসওয়ার্ড-প্রমাণিত ব্যবহারকারী তৈরি করতে পারেন।

বর্তমানে সাইন-ইন করা ব্যবহারকারীকে খুঁজুন

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

সুইফট

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

উদ্দেশ্য-সি

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

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

আপনি ` currentUser প্রপার্টি ব্যবহার করে বর্তমানে সাইন-ইন করা ব্যবহারকারীকেও পেতে পারেন। যদি কোনো ব্যবহারকারী সাইন-ইন করা না থাকে, তাহলে currentUser `nil` হয়।

সুইফট

if Auth.auth().currentUser != nil {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

উদ্দেশ্য-সি

if ([FIRAuth auth].currentUser) {
  // User is signed in.
  // ...
} else {
  // No user is signed in.
  // ...
}

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

কোনো ব্যবহারকারীর প্রোফাইল তথ্য পেতে, FIRUser এর একটি ইনস্ট্যান্সের প্রোপার্টিগুলো ব্যবহার করুন। উদাহরণস্বরূপ:

সুইফট

let user = Auth.auth().currentUser
if let user = user {
  // 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 getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

উদ্দেশ্য-সি

FIRUser *user = [FIRAuth auth].currentUser;
if (user) {
  // 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 getTokenWithCompletion:completion: instead.
  NSString *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

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

কোনো ব্যবহারকারীর সাথে লিঙ্ক করা সাইন-ইন প্রোভাইডারগুলি থেকে প্রাপ্ত প্রোফাইল তথ্য পেতে, providerData প্রপার্টিটি ব্যবহার করুন। উদাহরণস্বরূপ:

সুইফট

let userInfo = Auth.auth().currentUser?.providerData[indexPath.row]
cell?.textLabel?.text = userInfo?.providerID
// Provider-specific UID
cell?.detailTextLabel?.text = userInfo?.uid

উদ্দেশ্য-সি

id<FIRUserInfo> userInfo = [FIRAuth auth].currentUser.providerData[indexPath.row];
cell.textLabel.text = [userInfo providerID];
// Provider-specific UID
cell.detailTextLabel.text = [userInfo uid];

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

আপনি UserProfileChangeRequest ক্লাস ব্যবহার করে একজন ব্যবহারকারীর মৌলিক প্রোফাইল তথ্য—যেমন তার প্রদর্শিত নাম এবং প্রোফাইল ফটোর ইউআরএল—আপডেট করতে পারেন। উদাহরণস্বরূপ:

সুইফট

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = displayName
changeRequest?.commitChanges { error in
  // ...
}

উদ্দেশ্য-সি

FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest];
changeRequest.displayName = userInput;
[changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

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

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

সুইফট

Auth.auth().currentUser?.updateEmail(to: email) { error in
  // ...
}

উদ্দেশ্য-সি

[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

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

আপনি ` sendEmailVerificationWithCompletion: ` মেথড ব্যবহার করে কোনো ব্যবহারকারীকে ঠিকানা যাচাইকরণের ইমেল পাঠাতে পারেন। উদাহরণস্বরূপ:

সুইফট

Auth.auth().currentUser?.sendEmailVerification { error in
  // ...
}

উদ্দেশ্য-সি

[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) {
  // ...
}];

আপনি Firebase কনসোলের Authentication বিভাগের Email Templates পৃষ্ঠায় ব্যবহৃত ইমেল টেমপ্লেটটি কাস্টমাইজ করতে পারেন। Firebase Help Center-এ Email Templates দেখুন।

ভেরিফিকেশন ইমেল পাঠানোর সময় অ্যাপে রিডাইরেক্ট করার জন্য একটি কন্টিনিউ ইউআরএল-এর মাধ্যমে স্টেট পাস করাও সম্ভব।

এছাড়াও, ইমেল পাঠানোর আগে Auth ইনস্ট্যান্সে ল্যাঙ্গুয়েজ কোড আপডেট করে আপনি ভেরিফিকেশন ইমেলটিকে স্থানীয়করণ করতে পারেন। উদাহরণস্বরূপ:

সুইফট

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

উদ্দেশ্য-সি

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

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

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

সুইফট

Auth.auth().currentUser?.updatePassword(to: password) { error in
  // ...
}

উদ্দেশ্য-সি

[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

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

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

সুইফট

Auth.auth().sendPasswordReset(withEmail: email) { error in
  // ...
}

উদ্দেশ্য-সি

[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) {
  // ...
}];

আপনি Firebase কনসোলের Authentication বিভাগের Email Templates পৃষ্ঠায় ব্যবহৃত ইমেল টেমপ্লেটটি কাস্টমাইজ করতে পারেন। Firebase Help Center-এ Email Templates দেখুন।

পাসওয়ার্ড রিসেট ইমেল পাঠানোর সময় অ্যাপে ফিরিয়ে আনার জন্য একটি কন্টিনিউ ইউআরএল- এর মাধ্যমে স্টেট পাস করাও সম্ভব।

এছাড়াও, ইমেল পাঠানোর আগে Auth ইনস্ট্যান্সে ল্যাঙ্গুয়েজ কোড আপডেট করে আপনি পাসওয়ার্ড রিসেট ইমেলটি স্থানীয়করণ করতে পারেন। উদাহরণস্বরূপ:

সুইফট

Auth.auth().languageCode = "fr"
// To apply the default app language instead of explicitly setting it.
// Auth.auth().useAppLanguage()

উদ্দেশ্য-সি

[FIRAuth auth].languageCode = @"fr";
// To apply the default app language instead of explicitly setting it.
// [[FIRAuth auth] useAppLanguage];

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

একজন ব্যবহারকারীকে মুছে ফেলুন

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

সুইফট

let user = Auth.auth().currentUser

user?.delete { error in
  if let error = error {
    // An error happened.
  } else {
    // Account deleted.
  }
}

উদ্দেশ্য-সি

FIRUser *user = [FIRAuth auth].currentUser;

[user deleteWithCompletion:^(NSError *_Nullable error) {
  if (error) {
    // An error happened.
  } else {
    // Account deleted.
  }
}];

আপনি Firebase কনসোলের Authentication সেকশনের Users পেজ থেকেও ইউজারদের ডিলিট করতে পারেন।

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

কিছু নিরাপত্তা-সংবেদনশীল কাজ—যেমন একটি অ্যাকাউন্ট মুছে ফেলা , একটি প্রাথমিক ইমেল ঠিকানা সেট করা , এবং পাসওয়ার্ড পরিবর্তন করা —এর জন্য ব্যবহারকারীকে সম্প্রতি সাইন ইন করতে হয়। আপনি যদি এই কাজগুলোর মধ্যে কোনো একটি করেন, এবং ব্যবহারকারী অনেক দিন আগে সাইন ইন করে থাকেন, তাহলে কাজটি FIRAuthErrorCodeCredentialTooOld ত্রুটির সাথে ব্যর্থ হয়। এমনটি ঘটলে, ব্যবহারকারীর কাছ থেকে নতুন সাইন-ইন ক্রেডেনশিয়াল নিয়ে এবং সেই ক্রেডেনশিয়ালগুলো reauthenticate এ পাস করে ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করুন। উদাহরণস্বরূপ:

সুইফট

let user = Auth.auth().currentUser
var credential: AuthCredential

// Prompt the user to re-provide their sign-in credentials

user?.reauthenticate(with: credential) { error in
  if let error = error {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}

উদ্দেশ্য-সি

FIRUser *user = [FIRAuth auth].currentUser;
FIRAuthCredential *credential;

// Prompt the user to re-provide their sign-in credentials

[user reauthenticateWithCredential:credential completion:^(NSError *_Nullable error) {
  if (error) {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}];

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

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

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