查看 2022 年 Google I/O 大会上介绍的 Firebase 新动态。了解详情

احراز هویت با Firebase با استفاده از حساب های مبتنی بر رمز عبور در Flutter

می توانید از Firebase Authentication استفاده کنید تا به کاربران خود اجازه دهید با استفاده از آدرس های ایمیل و رمز عبور با Firebase احراز هویت کنند.

قبل از اینکه شروع کنی

  1. اگر قبلاً این کار را نکرده اید، مراحل راهنمای شروع کار را دنبال کنید.

  2. فعال کردن ورود به سیستم ایمیل/رمز عبور:

    • در بخش Authentication کنسول Firebase، صفحه روش ورود به سیستم را باز کنید.
    • از صفحه روش ورود به سیستم، روش ورود به سیستم ایمیل/رمز عبور را فعال کنید و روی ذخیره کلیک کنید.

یک حساب کاربری مبتنی بر رمز عبور ایجاد کنید

برای ایجاد یک حساب کاربری جدید با رمز عبور، createUserWithEmailAndPassword() را فراخوانی کنید:

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

به طور معمول، این کار را از صفحه ثبت نام برنامه خود انجام می دهید. هنگامی که کاربر جدیدی با استفاده از فرم ثبت نام برنامه شما ثبت نام می کند، مراحل تأیید اعتبار حساب جدید را که برنامه شما نیاز دارد، تکمیل کنید، مانند تأیید اینکه رمز عبور حساب جدید به درستی تایپ شده است و شرایط پیچیدگی شما را برآورده می کند.

اگر حساب جدید با موفقیت ایجاد شد، کاربر نیز وارد سیستم شده است. اگر در حال گوش دادن به تغییرات در وضعیت احراز هویت هستید، رویداد جدیدی برای شنوندگان شما ارسال خواهد شد.

به عنوان ادامه ایجاد یک حساب کاربری جدید، می توانید آدرس ایمیل کاربر را تأیید کنید .

یک کاربر با آدرس ایمیل و رمز عبور وارد شوید

مراحل ورود کاربر با رمز عبور مشابه مراحل ایجاد حساب کاربری جدید است. از صفحه ورود به سیستم برنامه خود، signInWithEmailAndPassword() را صدا کنید:

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

مراحل بعدی

پس از اینکه کاربر یک حساب جدید ایجاد کرد، این حساب به عنوان بخشی از پروژه Firebase شما ذخیره می‌شود و می‌توان از آن برای شناسایی کاربر در همه برنامه‌های پروژه‌تان استفاده کرد، صرف نظر از اینکه کاربر از چه روش ورود به سیستم استفاده کرده است.

در برنامه های خود، می توانید اطلاعات اولیه نمایه کاربر را از شی User دریافت کنید. به مدیریت کاربران مراجعه کنید.

در قوانین امنیتی Firebase Realtime Database و Cloud Storage، می‌توانید شناسه کاربری منحصربه‌فرد کاربر واردشده به سیستم را از متغیر auth دریافت کنید و از آن برای کنترل داده‌هایی که کاربر می‌تواند به آن دسترسی داشته باشد استفاده کنید.

می‌توانید به کاربران اجازه دهید با استفاده از چندین ارائه‌دهنده احراز هویت، با پیوند دادن اعتبار ارائه‌دهنده احراز هویت به یک حساب کاربری موجود، به برنامه شما وارد شوند.

برای خروج از سیستم کاربر، signOut() را فراخوانی کنید:

await FirebaseAuth.instance.signOut();