مقدمة الى Firebase Authentication | تسجيل الدخول باستخدام البريد الإلكتروني و Anonymous Login

AbdulAlim Rajjoubمنذ 6 سنوات

ماهو Firebase Auth

هي طريقة لربط مستخدمي تطبيقك في Firebase ولها 6 طرق في تسجيل الدخول:

  • Email/Password
  • Google باستخدام حساب
  • Facebook باستخدام حساب
  • Twitter
  • Github
  • Anonymous (تسجيل الدخول بدون إعطاء أي معلومات)
  • تسجيل الدخول باستخدام رقم الهاتف

 

وسنحاول شرح معظم هذه الطرق في الدروس القادمة,أما في هذا الدرس سنشرح أسهل طريقتين لتسجيل الدخول إما باستخدام البريد الإلكتروني أو Anonymous 

 

تسجيل الدخول باستخدام Anonymous Login

هذه الطريقة لاتطلب من المستخدم إعطاء أي معلومات بل ولن يشعر المستخدم بأنه قد تم تسجيله بالفعل,وتفيد هذه الطريقة في حالة أنك تريد ربط هذا المستخدم وحفظ بيانات اللعبة على سبيل المثال لديك على السيرفر والمستخدم لايريد إعطاء أي معلومات .

نبدأ بإنشاء مشروع جديد على Firebase ومشروع جديد في Android Studio ونربط مشروع الAndroid Studio بمشروع الFirebase (كما فعلنا في الدرس السابق)

ثم نضيف مكتبة Firebase Auth الى مشروع الأندرويد  في (build.gradle:app) ثم نعمل Sync


compile 'com.google.firebase:firebase-auth:10.2.1'

ثم نذهب الى Firebase Console ونفعل Anonymous

FBANE-1.thumb.png.fc17d56772e3c4d3b04a71447ac312f7.png

 

بعد ذلك نذهب الى MainActivity ثم نعرف اوبجكت من FirebaseAuth  ونسميه mAuth ونعطيه قيمة في onCreate

 

FBANE-2.png.6a0bc6d59e773f45d72179d6359b90b0.png

 

ثم ننشئ ميثود signInAnonymously ونستدعي الميثود في onCreate داخل هذه الميثود استخدمنا ميثود من  FirebaseAuth اسمها signInAnonymously وأضفنا لها addOnCompleteListener وهي interface تعيد لنا نتيجة عملية تسجيل الدخول وتعيد لنا task وقمنا بعمل log لنتيجة عملية التسجيل,وإذا كانت العملية غير ناجحة(!Succesful) نقوم بإظهار رسالة Toast

FBANE-3.png.0d9ec908b4d4451b83e0feae93409706.png

نجرب تشغيل التطبيق وإذا نجحت العملية سنجد true في logcat

FBANE-4.png.852e17ec4be9ec9999ba5f0b572d2c13.png

نتوجه الى Firebase Console  داخل Authentication ثم Users وسنجد أنه تم تسجيل مستخدم جديد وتظهر لنا User UID وهو ID ينشئ لكل مستخدم موجود على Firebase

FBANE-5.thumb.png.b750c2c7cea0fd973b0597f959988f3c.png

 

تسجيل الدخول باستخدام بريد الكتروني Email & Password

بدايةً يجب علينا تفعيل تسجيل الدخول باستخدام البريد الإلكتروني من Firebase Console

FBANE-5.5.thumb.png.a5c92d140de8079f726fb475015b79cb.png

بعد ذلك في activity_main.xml سننشئ 2EditTexts الأول للبريد الإلكتروني والثاني لكلمة المرور  بالإضافة الى زر LOGIN لتسجيل الدخول وأخيراً textView للإنتقال الى أكتفتي تسجيل حساب جديد Signup  

FBANE-6.png.456eb12a995cb7eab7dbaa206215f2c2.png

نبدأ أولاً بعملية تسجيل حساب جديد ونقوم بإنشاء أكتفتي جديد لهذا الأمر وسيكون نفس الأكتفتي السابق ولكن بدل زر LOGIN سيكون SIGNUP ونغير عنوان textView للانتقال الى أكتفتي تسجيل الدخول.

ثم داخل أكتفتي SignupActivity ننشئ ميثود SignupUser ونستدعيها عند الضغط على زر SignupBtn ونعطيه قيمة الEditTexts.

داخل ميثود SignupUser استخدمنا ميثود من Firebase Auth اسمها createUserWithEmailAndPassword وبالطبع تأخذ 2 بارامتر email و password 

ثم أضفنا ميثود addOnCompleteListener التي تعيد لنا نتيجة العملية وقمنا بالتحقق اذا تمت العملية بنجاح أم لا بنفس فكرة المثال السابق

FBANE-7.png.517e8518c2c756574bafab51d234b2ca.png

نجرب تشغيل التطبيق ونضع أي إيميل وأي باسوورد ونضغط على Signup وإذا نجحت العملية سنرى رسالة Toast User Created

FBANE-8.png.16112c3dd38aeda64959d8636e894f72.png

نذهب الى Firebase Console وسنجد أنه تم إنشاء حساب جديد

FBANE-9.png.cfdfbd519c9af90ac51ee85033cbd2c7.png

ننتقل الآن الى عملية تسجيل الدخول بحساب حالي(الحساب الذي أنشأناه) في أكتفتي MainActivity وننشئ ميثود SignInUser يأخذ نفس البارامترات ونفس onCompleteListener ولكن هذه المرة signInWithEmailAndPassword 

FBANE-11.png.17ac0343a44afeb29729435361622289.png

إذا نجحت عملية تسجيل الدخول سنرى رسالة Toast

FBANE-12.png.3f7a9b1b7cb58a2ef1552afde63c2be2.png

 

معرفة هل تم تسجيل الدخول  باستخدام Firebase Auth State Listener

في بعض الأحيان عند تشغيل التطبيق نريد معرفة هل تم تسجيل الدخول أم لا (فمثلا إذا تم تسجيل الدخول قم بتشغيل أكتفتي جديد  وإلا أظهر أكتفتي تسجيل الدخول..)

في MainActivity نعرف اوبجكت من FirebaseAuth.AuthStateListener 

FBANE-13.png.f185d898eb69b77d12bdb79956a4c9c2.png

وننشئ ميثود جديد اسمه initAuthStateListener ونستدعيه داخل onCreate ,هذا الميثود يقوم بتعريف mAuthListener .

الmAuthListener تعيد لنا firebaseAuth, الذي يحتوي على ميثود getCurrentUser  والتي بدورها تقوم بجلب المستخدم الحالي ,ثم نتحقق اذا كان user لا يساوي null (بالتالي المستخدم قد قام بتسجيل الدخول )عندها نقوم بعمل log ل uid الuser وإلا else المستخدم لم يقم بتسجيل الدخول او قد قام بتسجيل الخروج

FBANE-14.png.68920822dc607b0180a5bae03548961a.png

أخيراً نقوم بعمل override ل onStart و onStop , ونضيف mAuthListener ل mAuth في onStart وفي onStop نقوم بإزالة هذا Listener

FBANE-15.png.c6642cfabe7e918d7a8fecb5e837eca1.png

 

نجرب تشغيل التطبيق وإذا كان المستخدم قد قام بتسجيل الدخول عندها ستظهر الرسالة في logcat مع uid.

FBANE-16.png.8859267f3af48a3ca756fe446a307530.png

تُوفر Firebase أيضاً ميزة تفعيل البريد الإلكتروني(إرسال رسالة تأكيد من Firebase الى البريد الذي تم إدخاله) وإستعادة كلمة المرور في حال نسيانها وتغيير البريد الإلكتروني وإمكانية تخصيص شكل الرسالة ,يمكنك تفقدها في خانة Email Templates في Firebase Console.

هذه كانت مقدمة بسيطة عن Firebase Authentication وسنحاول التطرق لها أكثر في الدروس القادمة

 

المشروع كاملاً على Github

ملاحظة:المشروع على Github للمعاينة فقط ولايمكنك تجربته على Android Studio لعدم وجود google-services.json الخاص بك  

كلمات دليلية:
5
إعجاب
8382
مشاهدات
0
مشاركة
0
متابع
متميز
محتوى رهيب

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !