المصادقة مع Firebase باستخدام حسابات مستندة إلى كلمة المرور في Flutter

يمكنك استخدام خدمة Firebase Authentication للسماح للمستخدمين بالمصادقة باستخدام Firebase من خلال عناوين البريد الإلكتروني وكلمات المرور.

قبل البدء

  1. إذا لم يسبق لك ذلك، اتّبِع الخطوات الواردة في دليل البدء.

  2. فعِّل خيار "تسجيل الدخول باستخدام البريد الإلكتروني أو كلمة المرور":

    • في قسم المصادقة في وحدة تحكّم 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();