Firebase-এ ব্যবহারকারীদের ম্যানেজ করা

ব্যবহারকারী তৈরি করা

নতুন ব্যবহারকারী তৈরি করার জন্য আপনার কাছে নিম্নলিখিত বিকল্প আছে:

  • আপনার অ্যাপ থেকে: Firebase প্রোজেক্টে createUser মেথড কল করে অথবা Google সাইন-ইন বা Facebook লগ-ইন-এর মতো ফেডারেটেড আইডেন্টিটি প্রদানকারী ব্যবহার করে প্রথমবার কোনও ব্যবহারকারীকে সাইন-ইন করানোর মাধ্যমে নতুন ব্যবহারকারী তৈরি করুন।

  • Firebase কনসোলে: নিরাপত্তা > যাচাইকরণ > ব্যবহারকারী ট্যাব থেকে নতুন পাসওয়ার্ড-যাচাই করা ব্যবহারকারী তৈরি করুন।

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

বর্তমান ব্যবহারকারীকে পাওয়ার জন্য সাজেস্ট করা পদ্ধতি হল, Auth অবজেক্টে লিসনার সেট করা:

Swift

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

Objective-C

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

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

এছাড়াও, currentUser প্রপার্টি ব্যবহার করে বর্তমানে সাইন-ইন করা ব্যবহারকারীকে পেতে পারেন। কোনও ব্যবহারকারী সাইন-ইন না করে থাকলে, currentUser হল শূন্য:

Swift

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

Objective-C

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

ব্যবহারকারীর প্রোফাইল পাওয়া

ব্যবহারকারীর প্রোফাইল সংক্রান্ত তথ্য পেতে, FIRUser-এর কোনও ইনস্ট্যান্সের প্রপার্টি ব্যবহার করুন। যেমন:

Swift

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 += " "
  }
  // ...
}

Objective-C

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 প্রপার্টি ব্যবহার করুন। যেমন:

Swift

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

Objective-C

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

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

আপনি UserProfileChangeRequest ক্লাস ব্যবহার করে কোনও ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য—ব্যবহারকারীর ডিসপ্লে নাম এবং প্রোফাইল ফটো URL—আপডেট করতে পারবেন। যেমন:

Swift

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

Objective-C

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

ব্যবহারকারীর ইমেল আইডি সেট করা

আপনি updateEmail পদ্ধতির মাধ্যমে ব্যবহারকারীর ইমেল আইডি সেট করতে পারবেন। যেমন:

Swift

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

Objective-C

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

ব্যবহারকারীকে যাচাইকরণ ইমেল পাঠানো

আপনি sendEmailVerificationWithCompletion: পদ্ধতির মাধ্যমে কোনও ব্যবহারকারীকে ঠিকানা যাচাইকরণ ইমেল পাঠাতে পারেন। যেমন:

Swift

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

Objective-C

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

Firebase কনসোলের নিরাপত্তা > অনুমোদন > টেমপ্লেট ট্যাব থেকে কোন ইমেল টেমপ্লেট ব্যবহার করা হবে তা আপনি কাস্টমাইজ করতে পারবেন। Firebase সহায়তা কেন্দ্রে ইমেল টেমপ্লেট দেখুন।

এছাড়াও, যাচাইকরণ ইমেল পাঠানোর সময় চালিয়ে যাওয়ার URL-এর মাধ্যমে স্টেট পাস করা সম্ভব, যাতে অ্যাপে রিডাইরেক্ট করা যায়।

এছাড়াও, ইমেল পাঠানোর আগে Auth ইনস্ট্যান্সে ভাষা কোড আপডেট করে আপনি যাচাইকরণ ইমেলকে লোকালাইজ করতে পারেন। যেমন:

Swift

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

Objective-C

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

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

আপনি updatePassword পদ্ধতির মাধ্যমে ব্যবহারকারীর পাসওয়ার্ড সেট করতে পারবেন। যেমন:

Swift

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

Objective-C

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

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

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

Swift

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

Objective-C

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

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

এছাড়াও, পাসওয়ার্ড রিসেট করার ইমেল পাঠানোর সময় চালিয়ে যাওয়ার URL-এর মাধ্যমে স্টেট পাস করা সম্ভব, যাতে অ্যাপে রিডাইরেক্ট করা যায়।

এছাড়াও, ইমেল পাঠানোর আগে Auth ইনস্ট্যান্সে ভাষা কোড আপডেট করে আপনি পাসওয়ার্ড রিসেট করার ইমেলকে লোকালাইজ করতে পারবেন। যেমন:

Swift

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

Objective-C

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

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

ব্যবহারকারীকে মুছে দেওয়া

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

Swift

let user = Auth.auth().currentUser

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

Objective-C

FIRUser *user = [FIRAuth auth].currentUser;

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

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

ব্যবহারকারীকে আবার যাচাই করা

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

Swift

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.
  }
}

Objective-C

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