اضافة Cloud Firestore مع Flutter وانشاء تطبيق CRUD operations Complete App

 في هذه المقالة ، ستتعلم اضافة Cloud Firestore مع Flutter وانشاء تطبيق من خلالة ستفهم عمليات التعامل مع البيانات وتخزينها في قاعدة الفايربيز  وهذا النوع من التطبيقات  يسمى  CRUD operations وتعني هذه الاحرف المختصره  (create, read, update and delete) , من خلال هذه العمليات الاربع سيصبح عندك القدرة في التحكم في تخزين البيانات وادارتها بشكل صحيح.

اضافة Cloud Firestore مع Flutter وانشاء تطبيق CRUD operations




تعتبر Cloud Firestore  اداة من ادوات ال Firebase والهدف منهاانها توفر لك قاعدة بيانات من نوع NoSQL مسبقة الإعداد بحيث يمكنك إدارتها بسهولة  في تخزين ومزامنة البيانات بشكل سريع  ؛ كما أنها تدعم التخزين المؤقت التلقائي للبيانات بحيث يمكن استخدامها في وضع عدم الاتصال. مع العلم ان Google Cloud  هي المنصة القيادة  والمحركة وراء Cloud Firestore .


تعلم بواسطة الفيديو:



اقسام المقاله :

  • انشاء حساب في Firebase اذا لم يكن لديك حساب مسبق
  • انشاء تطبيق فلاتر جديد 
  • متطلبات التطبيق
  • اعدادات ربط تطبيقك مع Firebase 
  • اضافة الحزم المطلوبة الى ملف pubcpec.yaml 
  • تسمية الملفات الخاصة بالتطبيق
  • انشاء قاعدة البيانات على Cloud Firestore
  • كتابة الاكواد 

1- انشاء حساب على Firebase اذا لم يكن لديك حساب مسبق 

انتقل الى هذا الرابط لانشاء حساب على  Firebase    او تخطى هذا القسم اذا كان لديك حساب .

2- إنشاء مشروع Flutter  جديد خاص بك وتهيئة ملفات التطبيق  [الفيديو]

  1. افتح برنامج اندرويد استوديو 
  2. اضغط على New flutter project .
  3. حدد تطبيق Flutter في النافذة التي تظهر بعد ذلك ثم اضغط Next .
  4. سمي تطبيقك  الاسم الذي تريده . قد تضطر أيضًا إلى تحديد المسار إلى SDK اذا لم يكن محدد .
  5. أدخل اسم الحزمة com.your name.app name .
  6. اختر اللغة البرمجية لتطبيق [ kotlin - Swift ]فقط.
  7. اختر منصة التطبيق [ Android - IOS ] فقط , ثم اضغط Finish ,وانتظر جتى يقوم التطبيق بانهاء اعداد التطبيق.
  8. قم باعداد مكونات التطبيق.
  9. شغل التطبيق على محاكي الاندرويد او على هاتفك الخاص,للتاكيد ان كل شي جاهز.
  10. انتقل لملف build.gradle في ملف android وتاكد من رقم targetSdkVersion  ثم قم بضبط ال sdk            بالضغط على File في اعلى الشاشة  لليمين في تطبيق الاندرويد استوديو ثم انتقل الى Project Structure ستظهر لك شاشة  Project Setting قم ب اختيار قسم Project ثم عدل اصدار ال  Project sdk نفس رقم targetSdkVersion , ثم انتقل الى قسم Model في يمين الشاشة ستظهر شاشة جديدة  قم بالانتقل الى Dependencies في الخيارات بالاعلى ثم عدل Mpdle sdk الى نفس رقم targetSdkVersion , ثم انتقل الى قسم Problems اسفل الشاشة Project Setting  وقم بحل المشاكل اذا ظهرت بالضغط على fix جوار كل مشكلة.

3- متطلبات إنشاء التطبيق 

ضروريات :

  • Flutter  environment sdk  >=2.12.0 <3.0.0
  • minSdkVersion 21
  •  targetSdkVersion 30 is favorite

4- اعداد ربط تطبيقك مع Firebase 

- في احد الخطوات في شرح الفيديو  لاتقم  بتحديد [ Enable Google Analytics for this project]. قم بتخطي هذا الخطوة


- اضغط على الفيديو لمشاهد الشرح او اضغط على رابط المقال [رابط  الموضوع  هنا ] :



خطوات انشاء Cloud Firestore موجودة في [رابط  الموضوع  هنا ] ولاكن في شرح القيديو غير موجودة لذا اكملها من هنا .


خطوات انشاء  Cloud Firestore  لتخزين بياناتك :

- قم ب انشاء  Cloud Firestore  لتخزين بياناتك قم بالضغط على   Firestore datadase من القائمة اليسرى ثم النقر فوق Create database.

How to Use Firebase Data to Show them inside Flutter App



بعد ذلك قم ب اختيار test mode (أي أن قاعدة البيانات مفتوحة للجميع ولا تتحقق من أي نوع من تسجيل الدخول او المصادقة) بعد ذلك انقر فوق Next.


How to Use Firebase Data to Show them inside Flutter App



اما إذا كنت تعمل على تطبيق تريد تنزيلة على سوق بلاي ولاتريد جعل بياناتك عامة للجميع قم ب اختيار  production mode

بعد ذلك ، عليك تحديد موقع السيرفر الاقرب لك ل Cloud Firestore الذي تريد تخزين بياناتك علية  والنقر فوق Enable.


How to Use Firebase Data to Show them inside Flutter App



سيتم نقلك إلى  قاعدة بيانات Firestore فارغة.


How to Use Firebase Data to Show them inside Flutter App


-  بعد ذلك قم بالضغط على Rules ثم قم بتعديل السطر كما في الصورة بالاسفل:


allow read, write;

How to Use Firebase Data to Show them inside Flutter App


How to Use Firebase Data to Show them inside Flutter App



بعد ان قمت بهذه الخطوة تم اضافة Cloud Firestore بنجاح ويمكنك تخزين بيانات تطبيقك.




5-اضافة الحزم المستخدمة في التطبيق الى ملف pubspec.yaml 

انتقل الى ملف pubspec.yaml وقم بلصق الحزم .

firebase_core: ^1.0.1
cloud_firestore: ^1.0.1
firebase_database: ^8.0.1
readmore: ^2.0.0
كذلك قم باضافة صورة من مناسبة لملف ال assets ثم قم بتحرير  سطر السماح للصور في ملف assets من ملف pubspec.yaml.

assets:
    - assets/

6- انشاء و تسمية الملفات الخاصة بالتطبيق


الهدف من هذا القسم هو لتسهيل الشرح وبالاخص اذا كنت مبيدا ,
الان انتقل الى تطبيقك ثم الى ملف lib وقم بانشاء و بتسمية الملفات كما في الصورة الاسفل : 


Flutter and Firestore Database: CRUD example



7- شرح نموذج قاعدة البيانات على Cloud Firestore

هذا هو شكل قاعدة البيانات بعد ان تقوم ب اضافة اول post سيتم تحديد مسار التخزين بشكل تلقائي كما في الصورة بالاسفل ,لاكن قبل ذلك عليك فهم طريقة عمل تخرين البيانات في cloud firestore :
شرخ مختصر لطريقة عمل Cloud Firestore :

يقوم Firestore بتخزين البيانات في  مجموعات [ Collections ] تشبه الجداول وتحتوي هذه المجموعات على مستندات Documents و داخلها  يوجد  حقول fields.

عادةً ما تحتوي هذه المستندات على مفتاح فريد تم إنشاؤه (يُعرف أيضًا باسم document Id ) في قاعدة البيانات ، بحيث يقوم  بتخزين البيانات في حقول fields على شكل ازواج من مفتاح key  و قيمة value [ البيانات التي تريد تخزينها  ] بالاضافة الى اسم المرجع [ References ] الذي سيتم استخدامه للإشارة إلى موقع معين في قاعدة البيانات ، ويمكن استخدام تلك المعلومات لتخزين واسترجاع وتحديث وحذف البيانات من قاعدة البيانات. .

يمكن أن تحتوي هذه الحقول على عدة أنواع مختلفة المفاتيح:

String = يمكنه تخزين قيمة  نصية
Number = يمكنه تخزين قيمة عدد صحيح
Boolean = يمكنه تخزين قيمة على هيئة صح او خطا (true or false)
Map = يمكنه تخزين قيمة مكونه من خرائط
Array =يمكنه تخزين قيمة من مجموعة مصفوفة
Null
Timestamp
Geopoint

 والهدف من استخدام Firestore لتحكم في إدخال البيانات سوء من داخل التطبيق او من وحدة تحكم Firestore يدويًا ومشاهدة البيانات تظهر على الفور تقريبًا في تطبيقك.




انشاء  Cloud Firestore  لتخزين بياناتك : - في حال اردت انشاء  Cloud Firestore  لتخزين بياناتك قم بالضغط على   Firestore datadase من القائمة اليسرى ثم النقر فوق Create database.     How to Use Firebase Data to Show them inside Flutter App    بعد ذلك قم ب اختيار test mode (أي أن قاعدة البيانات مفتوحة للجميع ولا تتحقق من أي نوع من تسجيل الدخول او المصادقة) بعد ذلك انقر فوق Next.     How to Use Firebase Data to Show them inside Flutter App   اما إذا كنت تعمل على تطبيق تريد تنزيلة على سوق بلاي ولاتريد جعل بياناتك عامة للجميع قم ب اختيار production mode.  بعد ذلك ، عليك تحديد موقع السيرفر الاقرب لك ل Cloud Firestore الذي تريد تخزين بياناتك علية  والنقر فوق Enable.    How to Use Firebase Data to Show them inside Flutter App    سيتم نقلك إلى  قاعدة بيانات Firestore فارغة.    How to Use Firebase Data to Show them inside Flutter App   -  بعد ذلك قم بالضغط على Rules ثم قم بتعديل السطر كما في الصورة بالاسفل:    allow read, write;  How to Use Firebase Data to Show them inside Flutter App  How to Use Firebase Data to Show them inside Flutter App    بعد ان قمت بهذه الخطوة تم اضافة Cloud Firestore بنجاح ويمكنك تخزين بيانات تطبيقك.




8- كتابة الاكواد البرمجية لتطبيق

ستجد شرح كل كود في تعليق في الاعلاء محصور بين هذه العلامة /// /// ...... /// ///

انتقل  الى التطبيق الخاص بك ثم انتقل الى ملف main.dart  قم بحذف جميع الاكواد السابقة ثم الصق هذا الكود.

هذا الملف يتضمن:

1-  كود لتهيئة وتاكيد الربط بين منصة فايربيز مع تطبيق فلاتر 
2- كود ضبط التحكم بتوجة شاشة التطبيق للاعلى والاسفل 
3- كود ThemeData 
4-تحديد شاشة ال LoginScreen التي ستظهر عند  فتح التطبيق


انتقل الى ملف database  ثم الصق هذا الكود.

هذا الملف يتضمن:

1- لتعريف المجلد الرئيسي لتخزين كل البيانات وقمنا بتسميته posts ويتم انشاءة بشكل تلقائي عند اضافة اول post

2- كلاس ال Database  والذي يحتوي على اكواد اساليب التعامل مع تخزين البيانات في الفايربيز CRUD methods

3- تعريف متغير ID document والهدف منه تقسيم الpost الى عدة اقسام 

4- كود اضافة البيانات الى الفايربيز

5- لتعريف متغيرات محتوى ال post ا [ image, title , description  ]

6- مسار تخزين البيانات في قاعدة البيانات فايرستور

7- لتحويل البيانات الى map

8- 

9-  كود تحديث البيانات الى الفايربيز

10-  كود قراءة البيانات الى الفايربيز

11- تم استخدام خاصية ال Strem عوضا عن  Future  لجلب احدث البيانات المتوفرة في قاعدة البيانات ومزامنتها بشكل اوتوماتيكي 

12-  كود حذف البيانات من الفايربيز



انتقل الى ملف  validator ثم الصق هذا الكود.

هذا الملف يتضمن:

1- لتعامل مع الاخطاء في كل الحقول النصية

2-لازام المستخدم التقيد بادخال البيانات بالشروط المطلوب , والشرط هو قبول المدخلات اذا كانت اكثر من 3 ا واظهار رسالة خطا في حالة كانت اقل من 3




انتقل الى ملف  custom_colors ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كلاس لتحكم في كل الوان التطبيق.



انتقل الى ملف  custom_form_field ثم الصق هذا الكود.

هذا الملف يتضمن:

1- لتحكم في كل الحقول النصية




انتقل الى ملف login_screen  ثم الصق هذا الكود.

هذا الملف يتضمن:

1- لتهيئة الفايربيز داخل كلاس LoginScreen

2- لمنع ظهور خطاء عند فتح الكيبورد والحفاظ على مقاس الشاشة

3- كود تصميم LoginScreen

4- صورة واجهة شاشة البداية

5- تم استخدام FutureBuilder لاستدعاء و تهيئة الفايربيز  لتدفق البيانات عند فتح التطبيق 




انتقل الى ملف login_form  ثم الصق هذا الكود.

هذا الملف يتضمن: 

1- كود تصميم LoginForm 

2- للانتقال الى DashboardScreen بعد ادخال idDocs 




انتقل الى ملف dashboard_screen  ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كود تصميم DashboardScreen

2- لاستدعاء واجهة كلاس AppBarTitle

3- للانتقال الى AddScreen بعد الضغط على floatingButton لاضافة post

4- كود تصميم AddScreen

5- لاستدعاء واجهة كلاس ItemList وعرضها في DashboardScreen




انتقل الى ملف app_bar_title  ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كود تصميم AppBarTitle

2-كود تصميم الصورة التي تظهر في appbar




انتقل الى ملف  item_list ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كود تصميم ItemList والتي تحتوي على بيانات ال post 

2- كود لقراءة البيانات من الفايربيز وعرضها على شاشة DashboardScreen

3- للانتقال الى EditScreen لتعديل محتوى بيانات ال post وتصحيحها ثم تحديثها الى قاعدة بيانات الفايربيز




انتقل الى ملف add_screen  ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كود تصميم AddScreen

2- لاستدعاء واجهة كلاس AppBarTitle

3- لاستدعاء واجهة AddItemForm لعرض شاشة الحقول النصية الفارغة بغرض تعبئتها واضافة post




انتقل الى ملف  add_item_form ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كود تصميم AddItemForm

2-كود تصميم الحقل النصي الخاص بادخال Title

3-كود تصميم الحقل النصي الخاص بادخال Image

4-كود تصميم الحقل النصي الخاص بادخال Description

5- كود اضافة محتوى بيانات ال post الى الفايربيز 




انتقل الى ملف  edit_screen ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كود تصميم EditScreen

2- لاستدعاء واجهة كلاس ال AppBarTitle

3- كود تصميم زر ايقونة الحذف

4- كود حذف محتوى بيانات ال post من الفايربيز

5- لاستدعاء واجهة كلاس EditItemForm




انتقل الى ملف  edit_item_form ثم الصق هذا الكود.

هذا الملف يتضمن:

1- كود تصميم EditItemForm

2-كود تصميم الحقل النصي لتعديل وتحديث ال Title

3-كود تصميم الحقل النصي لتعديل وتحديث ال Image

4-كود تصميم الحقل النصي لتعديل وتحديث ال Description

5- كود تحديث محتوى بيانات ال post الى الفايربيز  بعد تصحيحها 




في حال واجهتك اي مشكلة لاتتردد في كتابة في تعليق ^_^ 

GooD LooK FoR All


مقالات متعلقة :

في هذا المقال ستتعلم كيفية تخزين البيانات في قاعدة الفايربيز السحابية Cloud Firestore ثم استعراضهم داخل تطبيق فلاتر , اي استخدام قاعدة فايربيز كمستودع Backend لبياناتك الخاصة ,يتميز هذا التطبيق بتصميم جذاب و يتكون من واجهة مستخدم رئسية تتضمن ستة انواع من بيانات وعند الضغط عليها تنتقل الى واجهة مستخدم متفرعة تتضمن البيانات المتفرعة  داخلها ,  الكود سورس وقاعدة البيانات متوفرة , سيتم تقسيم الشرح الى عدة اقسام .


في هذا المقال ستتعلم كيفية اضافة ايقونة البحث والبحث عن بياناتك المخزنة في الفايربيز لتطبيق فلاتر 


ستتعلم في هذا المقال كيفية ربط تطبيق فلاتر مع منصة فايربيز بعدة خطوات وهي:

انشاء حساب في Firebase - انشاء مشروع Firebase - اضافة Firebase الى Android - اضافة ملف Firebase الى Android - اضافة Firebase الى مشروعك Flutter - انشاء  Cloud Firestore  لتخزين بياناتك


تعليقات