একটি ব্যবহারকারী তৈরি করুন
আপনি createUser
পদ্ধতিতে কল করে বা ফেডারেটেড পরিচয় প্রদানকারী, যেমন Google সাইন-ইন বা Facebook লগইন ব্যবহার করে প্রথমবার কোনো ব্যবহারকারীকে সাইন ইন করার মাধ্যমে আপনার Firebase প্রকল্পে একজন নতুন ব্যবহারকারী তৈরি করেন।
এছাড়াও আপনি ব্যবহারকারী পৃষ্ঠায় Firebase কনসোলের প্রমাণীকরণ বিভাগ থেকে নতুন পাসওয়ার্ড-প্রমাণিত ব্যবহারকারী তৈরি করতে পারেন।
বর্তমানে সাইন ইন করা ব্যবহারকারী পান
বর্তমান ব্যবহারকারীকে পাওয়ার প্রস্তাবিত উপায় হল Auth অবজেক্টে একজন শ্রোতা সেট করে:
সুইফট
handle = Auth.auth().addStateDidChangeListener { auth, user in // ... }
উদ্দেশ্য-C
self.handle = [[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) { // ... }];
একজন শ্রোতা ব্যবহার করে, আপনি নিশ্চিত করেন যে Auth অবজেক্টটি একটি মধ্যবর্তী অবস্থায় নেই—যেমন আরম্ভ করা—যখন আপনি বর্তমান ব্যবহারকারী পাবেন।
আপনি currentUser
সম্পত্তি ব্যবহার করে বর্তমানে সাইন ইন করা ব্যবহারকারী পেতে পারেন। একজন ব্যবহারকারী সাইন ইন না করলে, currentUser
শূন্য:
সুইফট
if Auth.auth().currentUser != nil { // User is signed in. // ... } else { // No user is signed in. // ... }
উদ্দেশ্য-C
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 += " " } // ... }
উদ্দেশ্য-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
বৈশিষ্ট্য ব্যবহার করুন। যেমন:
সুইফট
let userInfo = Auth.auth().currentUser?.providerData[indexPath.row] cell?.textLabel?.text = userInfo?.providerID // Provider-specific UID cell?.detailTextLabel?.text = userInfo?.uid
উদ্দেশ্য-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-কে আপডেট করতে পারেন। যেমন:
সুইফট
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest() changeRequest?.displayName = displayName changeRequest?.commitChanges { error in // ... }
উদ্দেশ্য-C
FIRUserProfileChangeRequest *changeRequest = [[FIRAuth auth].currentUser profileChangeRequest]; changeRequest.displayName = userInput; [changeRequest commitChangesWithCompletion:^(NSError *_Nullable error) { // ... }];
একটি ব্যবহারকারীর ইমেল ঠিকানা সেট করুন
আপনি updateEmail
পদ্ধতির সাথে ব্যবহারকারীর ইমেল ঠিকানা সেট করতে পারেন। যেমন:
সুইফট
Auth.auth().currentUser?.updateEmail(to: email) { error in // ... }
উদ্দেশ্য-C
[[FIRAuth auth].currentUser updateEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
একজন ব্যবহারকারীকে একটি যাচাইকরণ ইমেল পাঠান
আপনি sendEmailVerificationWithCompletion:
পদ্ধতির মাধ্যমে একজন ব্যবহারকারীকে একটি ঠিকানা যাচাইকরণ ইমেল পাঠাতে পারেন। যেমন:
সুইফট
Auth.auth().currentUser?.sendEmailVerification { error in // ... }
উদ্দেশ্য-C
[[FIRAuth auth].currentUser sendEmailVerificationWithCompletion:^(NSError *_Nullable error) { // ... }];
আপনি Firebase কনসোলের প্রমাণীকরণ বিভাগে ব্যবহৃত ইমেল টেমপ্লেটটি কাস্টমাইজ করতে পারেন, ইমেল টেমপ্লেট পৃষ্ঠায়। Firebase সহায়তা কেন্দ্রে ইমেল টেমপ্লেট দেখুন।
একটি যাচাইকরণ ইমেল পাঠানোর সময় অ্যাপে পুনঃনির্দেশিত করতে একটি অবিরত URL এর মাধ্যমে রাজ্য পাস করাও সম্ভব।
উপরন্তু আপনি ইমেল পাঠানোর আগে Auth উদাহরণে ভাষা কোড আপডেট করে যাচাইকরণ ইমেল স্থানীয়করণ করতে পারেন। যেমন:
সুইফট
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
উদ্দেশ্য-C
[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 // ... }
উদ্দেশ্য-C
[[FIRAuth auth].currentUser updatePassword:userInput completion:^(NSError *_Nullable error) { // ... }];
একটি পাসওয়ার্ড রিসেট ইমেল পাঠান
আপনি sendPasswordReset
পদ্ধতির মাধ্যমে একজন ব্যবহারকারীকে একটি পাসওয়ার্ড রিসেট ইমেল পাঠাতে পারেন। যেমন:
সুইফট
Auth.auth().sendPasswordReset(withEmail: email) { error in // ... }
উদ্দেশ্য-C
[[FIRAuth auth] sendPasswordResetWithEmail:userInput completion:^(NSError *_Nullable error) { // ... }];
আপনি Firebase কনসোলের প্রমাণীকরণ বিভাগে ব্যবহৃত ইমেল টেমপ্লেটটি কাস্টমাইজ করতে পারেন, ইমেল টেমপ্লেট পৃষ্ঠায়। Firebase সহায়তা কেন্দ্রে ইমেল টেমপ্লেট দেখুন।
পাসওয়ার্ড রিসেট ইমেল পাঠানোর সময় অ্যাপ্লিকেশানে পুনঃনির্দেশিত করতে একটি অবিরত URL এর মাধ্যমে রাজ্য পাস করাও সম্ভব।
উপরন্তু আপনি ইমেল পাঠানোর আগে Auth উদাহরণে ভাষা কোড আপডেট করে পাসওয়ার্ড রিসেট ইমেল স্থানীয়করণ করতে পারেন। যেমন:
সুইফট
Auth.auth().languageCode = "fr" // To apply the default app language instead of explicitly setting it. // Auth.auth().useAppLanguage()
উদ্দেশ্য-C
[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.
}
}
উদ্দেশ্য-C
FIRUser *user = [FIRAuth auth].currentUser;
[user deleteWithCompletion:^(NSError *_Nullable error) {
if (error) {
// An error happened.
} else {
// Account deleted.
}
}];
এছাড়াও আপনি ব্যবহারকারীদের পৃষ্ঠায় Firebase কনসোলের প্রমাণীকরণ বিভাগ থেকে ব্যবহারকারীদের মুছতে পারেন।
একজন ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করুন
কিছু নিরাপত্তা-সংবেদনশীল ক্রিয়া- যেমন একটি অ্যাকাউন্ট মুছে ফেলা , একটি প্রাথমিক ইমেল ঠিকানা সেট করা , এবং একটি পাসওয়ার্ড পরিবর্তন করা - এর জন্য প্রয়োজন যে ব্যবহারকারী সম্প্রতি সাইন ইন করেছেন। আপনি যদি এই ক্রিয়াগুলির মধ্যে একটি করেন এবং ব্যবহারকারী অনেক আগে সাইন ইন করেন, তাহলে 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.
}
}
উদ্দেশ্য-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