إنشاء مشروع Firebase وربطه بتطبيقك
في الدرس الأول تعرفت على Firebase وخدماته. الآن سننتقل للتطبيق العملي: ستنشئ مشروعك الأول، وتربطه بتطبيق ويب، وتجهّز أدواتك. هذه الخطوات تُنفَّذ مرة واحدة في بداية كل مشروع، وبعدها يصبح بإمكانك استخدام قاعدة البيانات وتسجيل الدخول والاستضافة كما سترى في الدروس القادمة.
الخطوة 1: إنشاء المشروع
Section titled “الخطوة 1: إنشاء المشروع”- ادخل console.firebase.google.com بحساب Google. (راجع شروط العمر لحسابات Google في بلدك، وقد تحتاج حساباً عائلياً أو موافقة ولي الأمر.)
- اضغط Create a project (إنشاء مشروع).
- اكتب اسم المشروع، مثل
school-app. سيقترح Firebase معرّف مشروع (Project ID) فريداً عالمياً، مثلschool-app-4f2a1. - اختر هل تريد تفعيل Google Analytics. للتعلم يمكنك إيقافه.
- انتظر لحظات حتى يجهز المشروع.
تخيّل مشروع Firebase مثل مبنى إداري تستأجره: فيه غرفة لقاعدة البيانات، وغرفة لتسجيل الدخول، وغرفة للملفات، وكلها تحت عنوان واحد، والتطبيقات التي تسجلها هي الموظفون الذين يحملون مفاتيح الدخول.
الخطوة 2: تسجيل تطبيق ويب
Section titled “الخطوة 2: تسجيل تطبيق ويب”المشروع الواحد يمكن أن يخدم عدة تطبيقات: موقع ويب، وتطبيق أندرويد، وتطبيق iPhone، وكلها تتشارك نفس البيانات. لنسجل تطبيق ويب:
- في الصفحة الرئيسية للمشروع، اضغط أيقونة الويب
</>. - اكتب اسماً للتطبيق، مثل «موقع المدرسة».
- سيعرض لك Firebase كائن الإعدادات:
const firebaseConfig = { apiKey: "AIzaSy...", authDomain: "school-app-4f2a1.firebaseapp.com", projectId: "school-app-4f2a1", storageBucket: "school-app-4f2a1.firebasestorage.app", messagingSenderId: "123456789", appId: "1:123456789:web:abc123"};هذه البيانات تخبر مكتبة Firebase بأي مشروع تتصل. انسخها، فستحتاجها في الكود.
هل apiKey سر؟
Section titled “هل apiKey سر؟”سؤال يقلق كل مبتدئ: «الكائن فيه apiKey، ألا يجب إخفاؤه؟». الإجابة المفاجئة: لا. في Firebase، هذا المفتاح ليس سراً: هو مجرد معرّف لمشروعك، وسيظهر حتماً في كود أي موقع يستخدم Firebase، ويستطيع أي زائر رؤيته.
إذن ما الذي يحمي بياناتك؟ قواعد الأمان (Security Rules) التي ستكتبها في درس Firestore ودرس المصادقة. هي التي تقرر من يقرأ ماذا ومن يكتب ماذا.
الخطوة 3: تثبيت المكتبة
Section titled “الخطوة 3: تثبيت المكتبة”في مشروع ويب حديث يستخدم npm:
npm install firebaseثم في ملف JavaScript، تهيئ Firebase مرة واحدة:
import { initializeApp } from 'firebase/app';import { getFirestore } from 'firebase/firestore';import { getAuth } from 'firebase/auth';
const firebaseConfig = { // الإعدادات التي نسختها من Firebase Console};
export const app = initializeApp(firebaseConfig);export const db = getFirestore(app);export const auth = getAuth(app);initializeApp: يربط تطبيقك بالمشروع.getFirestoreوgetAuth: يجهزان خدمتي قاعدة البيانات وتسجيل الدخول.- لاحظ أسلوب الاستيراد: تستورد كل دالة تحتاجها فقط. هذا الأسلوب اسمه المكتبة المعيارية (Modular SDK)، ويجعل حجم موقعك أصغر، لأن الأدوات التي لا تستخدمها لا تُحمَّل.
وفي Flutter تستخدم حزمة رسمية اسمها FlutterFire، والأداة flutterfire configure تجهّز الإعدادات تلقائياً لأندرويد و iOS معاً.
الخطوة 4: أداة Firebase CLI
Section titled “الخطوة 4: أداة Firebase CLI”بعض المهام، مثل رفع الموقع ونشر قواعد الأمان، تحتاج أداة سطر الأوامر:
npm install -g firebase-toolsfirebase loginfirebase --versionfirebase login: يفتح المتصفح لتسجل الدخول بحساب Google.firebase --version: يتأكد من التثبيت.
ستستخدمها كثيراً في درس الاستضافة.
المحاكي المحلي: جرّب بلا خوف
Section titled “المحاكي المحلي: جرّب بلا خوف”Firebase يوفر مجموعة المحاكيات (Local Emulator Suite): نسخة من خدماته تعمل على جهازك. تجرّب فيها قاعدة البيانات وتسجيل الدخول وقواعد الأمان دون أن تلمس المشروع الحقيقي، ودون أي تكلفة.
firebase emulators:startوفي الكود، تخبر المكتبة أن تتصل بالمحاكي بدلاً من الخوادم الحقيقية:
import { connectFirestoreEmulator } from 'firebase/firestore';connectFirestoreEmulator(db, '127.0.0.1', 8080);كل أمثلة هذا الكورس مجربة فعلاً على هذه المحاكيات. (محاكي Firestore يحتاج تثبيت Java على جهازك.)
جرّب بنفسك
Section titled “جرّب بنفسك”- أنشئ مشروعاً في Firebase Console، وسجّل فيه تطبيق ويب.
- افتح الإعدادات وابحث عن معرّف المشروع، واكتبه.
- ثبّت Firebase CLI، وسجّل الدخول، وتأكد بـ
firebase --version. - أنشئ مجلداً لمشروع ويب، وثبّت المكتبة بـ
npm install firebase، وأنشئ ملفfirebase.jsبالتهيئة. - استكشف القائمة الجانبية في Console: أين تجد Firestore و Authentication و Hosting؟
أخطاء شائعة
Section titled “أخطاء شائعة”- تهيئة Firebase أكثر من مرة: استدعاء
initializeAppفي كل ملف يسبب خطأ. هيئه في ملف واحد وصدّرdbوauthمنه. - الخلط بين اسم المشروع ومعرّفه: الكود يستخدم المعرّف
projectId، وليس الاسم المعروض. - رفع ملفات حسابات الخدمة: ملف JSON الخاص بـ Service Account سر حقيقي، أضفه لـ
.gitignore.
اختبر نفسك
Section titled “اختبر نفسك”سؤال
هل يجب إخفاء apiKey الموجود في firebaseConfig لتطبيق ويب؟
apiKey في Firebase يعرّف المشروع فقط ويظهر حتماً في كود الموقع، وقواعد الأمان هي التي تحمي البيانات.
سؤال
ما فائدة محاكيات Firebase المحلية؟
المحاكيات نسخة محلية من الخدمات، مثالية للتعلم والتطوير والاختبار بلا مخاطر ولا تكلفة.
الخلاصة
Section titled “الخلاصة”- أنشئ المشروع من Firebase Console، واختر معرّف المشروع بعناية لأنه لا يتغير.
- سجّل تطبيقاً لكل منصة، وانسخ
firebaseConfigلتطبيق الويب. apiKeyليس سراً، والحماية الحقيقية في قواعد الأمان.npm install firebaseثمinitializeAppفي ملف واحد، و FlutterFire لتطبيقات Flutter.- Firebase CLI لرفع الموقع والقواعد، والمحاكيات للتجربة الآمنة على جهازك.