إضافة Firebase إلى تطبيق Flutter
المتطلبات الأساسية
ثبِّت أداة التعديل أو بيئة التطوير المتكاملة (IDE) المفضّلة لديك.
ثبِّت Flutter لنظام التشغيل الخاص بك، بما في ذلك ما يلي:
- حزمة تطوير البرامج (SDK) في Flutter
- المكتبات المتوافقة
- البرامج وحِزم تطوير البرامج (SDK) الخاصة بمنصات معيّنة
سجِّل الدخول إلى Firebase باستخدام حسابك على Google.
إذا لم يكن لديك تطبيق Flutter، يمكنك إكمال البدء: تجربة قيادة لإنشاء تطبيق Flutter جديد باستخدام المحرر أو بيئة التطوير المتكاملة المفضّلة لديك.
الخطوة 1: تثبيت أدوات سطر الأوامر المطلوبة
إذا لم يسبق لك إجراء ذلك، ثبِّت واجهة سطر الأوامر Firebase.
سجِّل الدخول إلى Firebase باستخدام حسابك على Google من خلال تنفيذ الأمر التالي:
firebase loginثبِّت FlutterFire CLI من خلال تنفيذ الأمر التالي من أي دليل:
dart pub global activate flutterfire_cli
الخطوة 2: ضبط تطبيقاتك لاستخدام Firebase
استخدِم واجهة سطر الأوامر FlutterFire لإعداد تطبيقات Flutter من أجل ربطها بمنصّة Firebase.
من دليل مشروع Flutter، نفِّذ الأمر التالي لبدء عملية إعداد التطبيق:
flutterfire configure
الخطوة 3: إعداد Firebase في تطبيقك
من دليل مشروع Flutter، نفِّذ الأمر التالي لتثبيت المكوّن الإضافي الأساسي:
flutter pub add firebase_coreمن دليل مشروع Flutter، نفِّذ الأمر التالي للتأكّد من أنّ إعدادات Firebase لتطبيق Flutter محدّثة:
flutterfire configureفي ملف
lib/main.dart، استورِد المكوّن الإضافي الأساسي في Firebase وملف الإعداد الذي أنشأته سابقًا:import 'package:firebase_core/firebase_core.dart'; import 'firebase_options.dart';في ملف
lib/main.dartأيضًا، عليك إعداد Firebase باستخدام الكائنDefaultFirebaseOptionsالذي يصدّره ملف الإعداد:WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp());أعِد إنشاء تطبيق Flutter:
flutter run
إذا كنت تفضّل استخدام مشروع تجريبي، يمكنك بدء محاكي Firebase
وفي ملف lib/main.dart، يمكنك تهيئة Firebase باستخدام demoProjectId (يجب أن يبدأ بـ demo-):
await Firebase.initializeApp(
demoProjectId: "demo-project-id",
);
الخطوة 4: إضافة مكوّنات Firebase الإضافية
يمكنك الوصول إلى Firebase في تطبيق Flutter من خلال مكوّنات Firebase الإضافية الخاصة بـ Flutter المختلفة، وهي مكوّن إضافي لكل منتج من منتجات Firebase (على سبيل المثال: Cloud Firestore وAuthentication وAnalytics وما إلى ذلك).
بما أنّ Flutter هو إطار عمل متعدد المنصات، فإنّ كل إضافة Firebase تنطبق على منصات Apple وAndroid والويب. لذلك، إذا أضفت أي إضافة Firebase إلى تطبيق Flutter، سيتم استخدامها في إصدارات تطبيقك على Apple وAndroid والويب.
في ما يلي كيفية إضافة إضافة Firebase Flutter:
من دليل مشروع Flutter، نفِّذ الأمر التالي:
flutter pub add PLUGIN_NAME
من دليل مشروع Flutter، نفِّذ الأمر التالي:
flutterfire configureيضمن تنفيذ هذا الأمر أنّ إعدادات Firebase في تطبيق Flutter محدّثة، كما أنّه يضيف المكوّنات الإضافية المطلوبة في Gradle إلى تطبيقك على نظام التشغيل Android لكل من Crashlytics وPerformance Monitoring.
بعد اكتمال العملية، أعِد إنشاء مشروع Flutter باتّباع الخطوات التالية:
flutter run
اكتملت عملية الإعداد. يتم تسجيل تطبيقات Flutter وإعدادها لاستخدام Firebase.
المكوّنات الإضافية المتاحة
| المنتج | اسم المكوِّن الإضافي | iOS | Android | الويب | أجهزة Apple الأخرى (macOS وما إلى ذلك) |
نظام التشغيل Windows |
|---|---|---|---|---|---|---|
| Firebase AI Logic 1 | firebase_ai |
بيتا | ||||
| Analytics | firebase_analytics |
بيتا | ||||
| App Check | firebase_app_check |
بيتا | ||||
| Authentication | firebase_auth |
بيتا | بيتا | |||
| Cloud Firestore | cloud_firestore |
بيتا | بيتا | |||
| Cloud Functions | cloud_functions |
بيتا | ||||
| Cloud Messaging | firebase_messaging |
بيتا | ||||
| Cloud Storage | firebase_storage |
بيتا | بيتا | |||
| Crashlytics | firebase_crashlytics |
بيتا | ||||
| Data Connect | firebase_data_connect |
|||||
| Dynamic Links | firebase_dynamic_links |
|||||
| In-App Messaging | firebase_in_app_messaging |
|||||
| Firebase من عمليات التثبيت | firebase_app_installations |
بيتا | ||||
| أداة تنزيل نماذج تعلُّم الآلة | firebase_ml_model_downloader |
بيتا | ||||
| Performance Monitoring | firebase_performance |
|||||
| Realtime Database | firebase_database |
بيتا | ||||
| Remote Config | firebase_remote_config |
بيتا |
1 كان اسم Firebase AI Logic في السابق
"Vertex AI in Firebase" مع المكوّن الإضافي
firebase_vertexai.
تجربة تطبيق نموذجي باستخدام "Analytics"
كما هو الحال مع جميع الحِزم، يأتي المكوّن الإضافي firebase_analytics مع برنامج مثال.
افتح تطبيق Flutter سبق لك ضبطه لاستخدام Firebase (راجِع التعليمات الواردة في هذه الصفحة).
يمكنك الوصول إلى الدليل
libالخاص بالتطبيق، ثم حذف الملفmain.dartالحالي.من Google Analytics مستودع البرنامج النموذجي، انسخ الملفَين التاليَين والصقهما في الدليل
libلتطبيقك:main.darttabs_page.dart
شغِّل تطبيق Flutter.
انتقِل إلى مشروع تطبيقك على Firebase في Firebase وحدة التحكّم، ثم انقر على إحصاءات Google في شريط التنقّل الأيمن.
انقر على لوحة البيانات. إذا كان Analytics يعمل بشكل سليم، ستعرض لوحة البيانات مستخدمًا نشطًا في لوحة "المستخدمون النشطون في آخر 30 دقيقة" (قد يستغرق ملء هذه اللوحة بعض الوقت).
انقر على DebugView. فعِّل الميزة للاطّلاع على جميع الأحداث التي أنشأها البرنامج النموذجي.
لمزيد من المعلومات حول إعداد Analytics، يُرجى الاطّلاع على أدلة البدء لكل من iOS+ وAndroid والويب.
ملاحظات حول إنشاء تطبيقات الويب
توافق Trusted Types
تتيح حزمة تطوير البرامج (SDK) لنظام Firebase من أجل Flutter استخدام Trusted Types للمساعدة في منع هجمات XSS المستنِدة إلى DOM (من جهة العميل). عندما
تفعّل ميزة "فرض استخدام الأنواع الموثوق بها"
في تطبيقك، تحقن حزمة تطوير البرامج (SDK) من Firebase نصوصها البرمجية في نموذج المستند (DOM) باستخدام سياسات مخصّصة
لـ "الأنواع الموثوق بها"، ويتم تسميتها flutterfire-firebase_core وflutterfire-firebase_auth وما إلى ذلك.
إيقاف عملية الحقن التلقائي لحزمة تطوير البرامج (SDK) في JavaScript من Firebase
تُدرِج حزمة تطوير البرامج (SDK) من Firebase Flutter تلقائيًا حزمة تطوير البرامج (SDK) من Firebase JavaScript عند إنشاء تطبيق للويب. إذا كنت لا تريد أن يتم إدخال حزمة تطوير البرامج (SDK) لمنصة Firebase JavaScript تلقائيًا، يمكنك اتّباع الخطوات التالية:
تجاهُل النص البرمجي الذي يتم إدخاله تلقائيًا من خلال إضافة السمة التالية داخل علامة
<script>في ملفweb/index.htmlضمن مشروع Flutter:<!-- Add this property inside a <script> tag within your "web/index.html" file in your Flutter project --> <!-- Put in the names of all the plugins you wish to ignore: --> window.flutterfire_ignore_scripts = ['analytics', 'firestore'];حمِّل النص البرمجي يدويًا باستخدام أحد البدائل التالية:
أضِف حزمة SDK بشكل صريح إلى ملف
web/index.html، داخل معاودة الاتصالwindow.addEventListener:window.addEventListener('load', async function (ev) { window.firebase_firestore = await import("https://www.gstatic.com/firebasejs/12.6.0/firebase-firestore.js"); window.firebase_analytics = await import("https://www.gstatic.com/firebasejs/12.6.0/firebase-analytics.js"); _flutter.loader.loadEntrypoint().then(function (engineInitializer) { // rest of the codeأو يمكنك تنزيل رمز حزمة تطوير البرامج (SDK) لمنصة Firebase JavaScript من النطاق "gstatic"، وحفظه في ملف JavaScript ليتم الاحتفاظ به في مشروعك وتحميله يدويًا:
// "web/my-analytics.js" & "web/my-firestore.js" file loaded as a script into your "web/index.html" file: window.addEventListener('load', async function (ev) { window.firebase_analytics = await import("./my-analytics.js"); window.firebase_firestore = await import("./my-firestore.js"); _flutter.loader.loadEntrypoint().then(function (engineInitializer) { // rest of the code
الخطوات التالية
يمكنك الحصول على خبرة عملية من خلال الدرس التطبيقي حول الترميز الخاص بمنصة Firebase وFlutter.
استعِدّ لإطلاق تطبيقك باتّباع الخطوات التالية:
- إعداد تنبيهات الميزانية لمشروعك في وحدة تحكّم Google Cloud
- يمكنك الاطّلاع على لوحة بيانات الاستخدام والفوترة في وحدة تحكّم Firebase للحصول على صورة شاملة عن استخدام مشروعك في عدة خدمات من Firebase.
- راجِع قائمة التحقّق من إطلاق Firebase.