شارك المقالة

ربط Firebase مع Flutter على Android وiOS باستخدام FlutterFire CLI، وتجنب إعدادات HTTP غير الآمنة وفهم أخطاء Gradle وmultidex القديمة.

ابدأ من تهيئة FlutterFire الحالية

أنشئ مشروع Firebase أو اختر مشروع اختبار موجودًا، ثم نفذ flutterfire configure من جذر مشروع Flutter. اختر المنصات المطلوبة وتحقق من applicationId في Android وBundle ID في iOS. أضف firebase_core واستخدم الخيارات الناتجة في firebase_options.dart. لا تنسخ إصدارات Gradle وإضافات Google services من لقطة قديمة دون مراجعة ما يولده مشروعك الحالي وما تتطلبه الخدمة التي تضيفها.

نقطة الدخول وترتيب التهيئة

قبل استدعاء أي خدمة Firebase نفذ ensureInitialized ثم انتظر initializeApp وبعدها runApp. هذا يجعل ترتيب التشغيل واضحًا ويسهل تشخيص فشل default-app. إذا تغيرت إعدادات أصلية أعد بناء التطبيق، لأن hot reload وحده لا يعيد تهيئة Gradle أو مشروع Xcode. بعض الخدمات تحتاج خطوات إضافية مثل APNs للإشعارات أو SHA لتسجيل Google، لذا نجاح firebase_core بداية وليس إتمامًا لكل ميزة.

تصحيح فهم multidex والصلاحيات

حد 64K يتعلق بعدد مراجع methods في ملف DEX لنسخ Android المناسبة، وليس حد عدد سجلات Firebase أو حجم المحادثة. لا تضف multidex لكل مشروع لمجرد كثرة البيانات. كذلك Firebase يعمل عبر HTTPS ولا يحتاج تفعيل usesCleartextTraffic أو تعطيل قيود النقل على iOS بصورة عامة. لا تضف requestLegacyExternalStorage كحل لربط Firebase؛ اختيار الملفات والتخزين المحلي لهما أذونات وسياسات مختلفة.

فصل البيئات وحماية البيانات

احتفظ بتهيئة اختبار وإنتاج واضحة عند الحاجة، وتحقق من المشروع الذي ستكتب فيه قبل تجربة حذف أو تعديل. إعدادات العميل لا تمنح صلاحية Admin، ولا تضع ملف حساب خدمة خاصًا في assets. بعد تهيئة التطبيق اضبط قواعد Firestore وStorage حسب المصادقة ونموذج البيانات، بدل إبقائها مفتوحة لتسهيل التجربة. احفظ متطلبات كل منصة في المشروع حتى يمكن إعادة البناء دون الاعتماد على جهاز مطور واحد.

فحص Android وiOS كلًا على حدة

شغل نسخة اختبار على كل منصة، ثم افحص أول خطأ فعلي إذا فشل البناء. راجع الحد الأدنى للنظام وإصدارات الإضافات وCocoaPods أو Gradle وفق سجل الخطأ، ولا تعالج كل مشكلة بإعادة إنشاء Firebase. جرّب قراءة أو كتابة اختبار مسموحة بعد المصادقة، ثم أزل بيانات التجربة. المثال يهيئ firebase_core فقط؛ دروس المصادقة والإشعارات والتخزين المرتبطة أدناه تكمل إعداد كل خدمة بصورة مستقلة.

المثال التطبيقي وحدوده

أضف الحزم المستوردة بإصدارات متوافقة، وهيئ Firebase قبل استخدام خدماته. المقطع يوضح الجزء المذكور في الشرح؛ إعدادات المنصة والقواعد وواجهة الحالات تظل مسؤولية المشروع المستضيف.

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  runApp(const MaterialApp(home: Scaffold(body: Text('Firebase initialized'))));
}

الصور والفيديو من الشرح

المواد المرئية الأصلية محفوظة للرجوع إليها. قد تعرض إصدارًا قديمًا؛ عند الاختلاف اتبع النص والأمثلة المصححة أعلاه، خاصة في خدمات الإشعارات والروابط التي تغيرت.

شرح كيفية ربط التطبيق بخدمة firebaseثاني خطوة وهيا تحميل ملف الjson وارفاقه داخل المشروع في ملف الapp كما هو موضح .اضافة خدمات جوجل للتطبيقرابط خدمات جوجل بتطبيقكتخطي مشكلة وصول البيانات لاكثر من 64 الف في الfirebaseاضافة مكتبة multidexالتاكد من وصول الانترنت وعدم حدوث مشاكل بسبب الانترنت والوصول الى الملفات للاصدارات الحديثة من الاندرويدالان ناتي الى اخر مرحلة ونقوم بها بالربط بالطريقة الصحيحه .اضافة المكتبات الخاصه بالايفون الى الفلاترالحصول على الidالان قم بتحميل الملف ووضعه في المكان المناسب وهو داخل ملف runnerاضافة محتويات لملف Infoشرح كيفية ربط التطبيق بخدمة firebase بمشروع Flutter للاندرويد و iosرفع مشروعك فلاتر ويب على فايربيزرفع مشروعك فلاتر ويب على فايربيزرفع مشروعك فلاتر ويب على فايربيزرفع مشروعك فلاتر ويب على فايربيز

مراجع التنفيذ

شاهد أيضًا
مقالات ذات صلة
🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع