Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

کاربران را در Firebase مدیریت کنید

یک کاربر ایجاد کنید

شما ایجاد یک کاربر جدید در پروژه Firebase خود را با تماس با createUserWithEmail:password:completion: روش یا با ورود یک کاربر برای اولین بار با استفاده از یک ارائه دهنده هویت فدرال، مانند Google وارد شوید و یا فیس بوک ورود .

شما همچنین می توانید کاربران جدید-رمز عبور تصدیق از بخش احراز هویت از ایجاد فایربیس کنسول ، در صفحه کاربر.

کاربر فعلی وارد شده را دریافت کنید

راه توصیه شده برای بدست آوردن کاربر فعلی ، تنظیم شنونده بر روی شیء Auth است:

سریع

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

هدف-ج

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

هدف-ج

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];

نمایه کاربر را به روز کنید

شما می توانید نام و مشخصات تصویر کاربر اطلاعات مشخصات اساسی کاربر URL-با به روز رسانی FIRUserProfileChangeRequest کلاس. مثلا:

سریع

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:completion: روش. مثلا:

سریع

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) {
  // ...
}];

شما می توانید قالب ایمیل است که در بخش احراز هویت از استفاده سفارشی فایربیس کنسول ، در ایمیل قالب صفحه. مشاهده قالب ایمیل در مرکز راهنمایی فایربیس.

همچنین ممکن است به تصویب دولت از طریق یک ادامه URL به تغییر مسیر بازگشت به برنامه هنگام ارسال یک ایمیل تأیید.

علاوه بر این ، می توانید قبل از ارسال ایمیل ، کد زبان را در نمونه 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:completion: روش. مثلا:

سریع

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

هدف-ج

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

ارسال ایمیل بازنشانی رمز عبور

شما می توانید یک ایمیل بازنشانی رمز ورود به یک کاربر با ارسال sendPasswordResetWithEmail:completion: روش. مثلا:

سریع

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

هدف-ج

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

شما می توانید قالب ایمیل است که در بخش احراز هویت از استفاده سفارشی فایربیس کنسول ، در ایمیل قالب صفحه. مشاهده قالب ایمیل در مرکز راهنمایی فایربیس.

همچنین ممکن است به تصویب دولت از طریق یک ادامه URL به تغییر مسیر بازگشت به برنامه هنگام ارسال یک ایمیل تنظیم مجدد رمز عبور.

علاوه بر این ، می توانید ایمیل بازنشانی رمز عبور را با به روز رسانی کد زبان در نمونه 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 ارسال کنید.

حذف یک کاربر

شما می توانید یک حساب کاربری با حذف deleteWithCompletion روش. مثلا:

سریع

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

شما همچنین می توانید حذف کاربران از بخش احراز هویت از فایربیس کنسول ، در صفحه کاربر.

احراز هویت مجدد کاربر

برخی از اقدامات از جمله حساس به امنیت به عنوان حذف یک حساب ، تنظیم یک آدرس ایمیل اصلی و تغییر رمز عبور -require که کاربر به تازگی در امضا کرد. اگر شما در انجام یکی از این اقدامات، و کاربر پیش، در بیش از حد طولانی امضا عمل با شکست مواجه FIRAuthErrorCodeCredentialTooOld خطا. هنگامی که این اتفاق می افتد، reauthenticate کاربر با گرفتن ثبتنام جدید در اعتبار از کاربر و عبور از اعتبار به 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 auth:import users.json --hash-algo=scrypt --rounds=8 --mem-cost=14