Перейти к содержимому

Flutter بالعربي #7 🔥 | Google Sign-In + AsyncNotifier + GoRouter Redirect | Firebase

Osama Essam

0:00 / 0:00

Flutter بالعربي #7 🔥 | Google Sign-In + AsyncNotifier + GoRouter Redirect | Firebase

53 просмотра · 7 дн. назад
Osama Essam
437 подписчиков
53 просмотра · 7 дн. назад
بسم الله والصلاة والسلام على رسول الله ❤️ أهلًا بيكم في الحلقة السابعة من سلسلة بناء تطبيق **مصروفي (Masrofy) باستخدام Flutter**. في الحلقة دي هنكمل ربط التطبيق بـ Firebase، وهنركز على إدارة حالة تسجيل الدخول باستخدام Riverpod، والتعامل مع حالات التحميل والنجاح والأخطاء، بالإضافة إلى تنظيم التنقل بين الشاشات باستخدام GoRouter بحيث المستخدم يدخل على الشاشة المناسبة حسب حالة تسجيل دخوله. 🚀 *محتويات الحلقة:* 1️⃣ بناء Authentication State Management باستخدام Riverpod إنشاء AuthController لإدارة حالة تسجيل الدخول. استخدام AsyncNotifier و AsyncValue للتعامل مع العمليات غير المتزامنة. فهم حالات Loading و Data و Error. استخدام AsyncValue.guard للتعامل مع الأخطاء بطريقة منظمة. تنفيذ تسجيل الدخول باستخدام Google. إدارة حالة تسجيل الخروج باستخدام Firebase Authentication و Google Sign-In. استخدام AsyncValue لتحديث حالة التطبيق أثناء تنفيذ العمليات. 2️⃣ ربط الـ Controller بالـ Repository إنشاء AuthControllerProvider. استخدام Riverpod لربط الـ Controller بالـ Repository. فصل الـ Business Logic عن واجهة المستخدم. استخدام `ref.watch` لمتابعة الحالة. استخدام `ref.read` لتنفيذ العمليات. عرض مؤشر التحميل أثناء تسجيل الدخول. التعامل مع نجاح تسجيل الدخول والأخطاء. 3️⃣ إعداد GoRouter للتعامل مع Authentication إنشاء Router Provider باستخدام Riverpod. استخدام Redirect لتحديد الشاشة المناسبة للمستخدم. التحقق من وجود مستخدم مسجل الدخول باستخدام Firebase Auth. توجيه المستخدم إلى شاشة تسجيل الدخول إذا لم يكن مسجلًا. توجيه المستخدم إلى Home Screen إذا كان مسجلًا بالفعل. منع المستخدم المسجل من الرجوع إلى شاشة تسجيل الدخول. استخدام `context.go` للانتقال إلى الشاشة الرئيسية بعد نجاح تسجيل الدخول. 4️⃣ تجربة تسجيل الدخول عمليًا تجربة تسجيل الدخول باستخدام حساب Google. التأكد من انتقال المستخدم إلى الصفحة الرئيسية بعد نجاح العملية. إعادة تشغيل التطبيق والتحقق من الاحتفاظ بحالة تسجيل الدخول. اختبار توجيه المستخدم تلقائيًا إلى الصفحة المناسبة. 💻 *الكود المصدري للمشروع على GitHub:* https://github.com/osama-sn/masrofy/t... 🎯 هدفنا في السلسلة إننا نبني تطبيق Flutter حقيقي، ونتعلم إزاي نفصل المسؤوليات، وننظم الكود، ونتعامل مع Authentication وإدارة الحالة والتنقل بين الشاشات بطريقة احترافية. لو الفيديو أفادك، متنساش تعمل Like 👍 وتشترك في القناة وتفعّل الجرس 🔔 علشان تتابع باقي حلقات سلسلة مصروفي. 💬 *سؤال ليك:* بتفضل تستخدم AsyncNotifier في Riverpod ولا StateNotifier؟ وليه؟ #Flutter #FlutterArabic #Riverpod #Firebase #GoRouter #GoogleSignIn #AsyncNotifier #StateManagement #Dart #FlutterTutorial