في هذا الدليل السريع، ستنشئ قاعدة بيانات صغيرة نموذجية وتنفّذها، ثم ستصل إليها من واجهة أمامية لتطبيق Flutter.
المتطلبات الأساسية
لإكمال هذا التشغيل السريع، ستحتاج إلى ما يلي:
- بيئة مثبَّت عليها الأدوات التالية:
- Node.js مع مدير حِزم من اختيارك يفترض هذا البرنامج التعليمي
npm. - واجهة سطر الأوامر (CLI) في Firebase:
npm i -g firebase-tools@latest - أداة سطر الأوامر في Flutter
- واجهة سطر الأوامر FlutterFire
dart pub global activate flutterfire_cli
- Node.js مع مدير حِزم من اختيارك يفترض هذا البرنامج التعليمي
- حساب على Google
برنامج تعليمي
| برنامج تعليمي | |
|---|---|
1. إنشاء مشروع جديد على Firebaseابدأ بإنشاء مشروع جديد على Firebase في وحدة تحكّم Firebase. بعد ذلك، يمكنك ترقية المشروع إلى خطة Blaze. |
|
2. إعداد مشروعكأنشئ دليلاً جديدًا وأضِف إليه مشروع Firebase. عند المطالبة، حدِّد الخيارات التالية:
|
|
3- مراجعة أمثلة على تعريفات GraphQLفي Data Connect، يمكنك تحديد جميع مخططات قاعدة البيانات وعملياتها باستخدام GraphQL. عند إعداد مشروعك، أنشأ Firebase CLI بعض تعريفات الأمثلة لمساعدتك في البدء. |
dataconnect/schema/schema.gql (مقتطف)
type Movie @table { title: String! imageUrl: String! genre: String } type MovieMetadata @table { movie: Movie! @unique rating: Float releaseYear: Int description: String } query ListMovies @auth(level: PUBLIC) { movies { id title imageUrl genre } } |
4. نشر المخططات والعملياتعند إجراء تغييرات على مخططات قاعدة البيانات أو طلبات البحث أو عمليات التعديل، عليك نشرها حتى يتم تطبيق التغييرات على قاعدة البيانات. |
|
5- تعبئة قاعدة البيانات بنموذج البياناتستمنحك بيانات البداية هذه شيئًا يمكنك الاطّلاع عليه عند اختبار التطبيق النموذجي. يُرجى العِلم بأنّك في هذه الخطوة ستنفّذ طلبات GraphQL عشوائية، وهو أمر مسموح به للمهام الإدارية. |
|
6. إنشاء حزمة SDK لبرنامج Dartيستخدم هذا الأمر تعريفات GraphQL لإنشاء مكتبة Dart مخصّصة لقاعدة البيانات. يمكنك استخدام هذه المكتبة في تطبيق العميل لتنفيذ جميع عمليات قاعدة البيانات. يمكنك إنشاء مكتبات لمنصات متعددة، بما في ذلك Kotlin لنظام Android وSwift لنظام iOS وJavaScript للويب، وذلك عن طريق إضافة تعريفات إلى
|
class ExampleConnector { ListMoviesVariablesBuilder listMovies() { return ListMoviesVariablesBuilder(dataConnect); } // ... } |
7. إعداد تطبيق Flutterنفِّذ الأوامر التالية لإعداد تطبيق Flutter لاستخدام مشروعك على Firebase. عندما يطلب منك الأمر |
|
8. كتابة نموذج لبرنامج عميل Flutterاستبدِل محتوى لاحظ أنّ التطبيق يكمل عملية الوصول اللازمة إلى قاعدة البيانات باستخدام دالة من حزمة SDK التي تم إنشاؤها. |
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_data_connect/firebase_data_connect.dart'; import 'package:flutter/material.dart'; import 'package:flutter_app/dataconnect_generated/generated.dart'; import 'package:flutter_app/firebase_options.dart'; class MyApp extends StatelessWidget { late final Future<QueryResult<ListMoviesData, void>> _movieListFuture; MyApp({super.key}) { _movieListFuture = ExampleConnector.instance .listMovies() .execute(); } @override Widget build(BuildContext context) { return MaterialApp( home: FutureBuilder( future: _movieListFuture, builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { return ListView.builder( scrollDirection: Axis.vertical, itemBuilder: (context, index) => Card( child: Text( snapshot.data?.data.movies[index].title ?? "", ), ), itemCount: snapshot.data?.data.movies.length ?? 0, ); } return const CircularProgressIndicator(); }, ), ); } } Future<void> main() async { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(MyApp()); } |
9. جرّب التطبيقابدأ تشغيل خادم التطوير لرؤية مثال التطبيق أثناء عمله. |
|
الخطوات التالية
تجربة إضافة Visual Studio Code
عند التطوير باستخدام Data Connect، ننصح بشدة باستخدام إضافة Visual Studio Code. حتى إذا لم تكن تستخدم Visual Studio Code كبيئة التطوير الأساسية، يوفّر لك هذا الامتداد العديد من الميزات التي تجعل عملية تطوير المخططات والعمليات أكثر ملاءمة:
- خادم لغة GraphQL يوفّر عمليات التحقّق من البنية واقتراحات الإكمال التلقائي الخاصة بـ Data Connect
- أزرار CodeLens في سطر الرمز البرمجي تتيح لك قراءة البيانات وكتابتها من ملفات تعريف المخطط وتنفيذ طلبات البحث وعمليات التعديل من تعريفات العمليات.
- الحفاظ على مزامنة حِزم SDK التي تم إنشاؤها تلقائيًا مع تعريفات GraphQL
- إعداد مبسّط للمحاكي المحلي
- نشر مبسّط للإصدار العلني
استخدام محاكي Data Connect للتطوير المحلي
على الرغم من أنّ هذا البرنامج التعليمي قد أوضح لك كيفية نشر مخططات Data Connect وعملياتها مباشرةً في مرحلة الإنتاج، من المحتمل أنّك لن تريد إجراء تغييرات على قاعدة بيانات الإنتاج أثناء تطوير تطبيقك بشكل نشط. بدلاً من ذلك، يمكنك إعداد محاكي Data Connect وإجراء أعمال التطوير عليه بدلاً من مرحلة الإنتاج. يُعدّ المحاكي نسخة محلية من PGlite تعمل بشكل مشابه لنسخة Postgres نشطة على CloudSQL.
كيفية كتابة المخططات والعمليات لتطبيقك
عند تطوير تطبيقات باستخدام Data Connect، يكون تصميم المخططات والعمليات من أولى مهام التطوير وأهمها التي ستُكملها.
- "Gemini في وحدة تحكّم Firebase" هي أداة مستندة إلى الذكاء الاصطناعي يمكنها إنشاء مخططات Data Connect من وصف بلغة طبيعية لتطبيقك. يمكن أن تساعدك هذه الأداة في البدء بسرعة كبيرة، خاصةً إذا لم يسبق لك العمل مع قواعد البيانات العلائقية.
- بدلاً من ذلك، يمكنك كتابة مخططات قاعدة البيانات والاستعلامات والتعديلات مباشرةً باستخدام GraphQL. ابدأ بصفحة مخططات Data Connect التصميم، ثم انتقِل إلى الصفحات التالية للتعرّف على كيفية كتابة العمليات.