إعداد Firebase
صِل تطبيقك بمشروع Firebase
إعداد Firebase درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 4 دروس في المجموع.
ما هو Firebase؟
Firebase هو منصة Google لتطوير التطبيقات. يوفّر لتطبيق Android الخاص بكم خلفية جاهزة، فلا تضطرون إلى إنشاء الخوادم واستضافتها بأنفسكم.
في هذه الدورة ستصلون تطبيقًا بـ Firebase، ثم تستخدمون ثلاثًا من أشهر خدماته:
- Authentication — تسجيل دخول المستخدمين باستخدام البريد الإلكتروني أو Google
- Cloud Firestore — قاعدة بيانات NoSQL آنية
- Cloud Messaging (FCM) — الإشعارات الفورية
يركّز هذا الدرس الأول على الإعداد: إنشاء مشروع وربطه بتطبيق Android الخاص بكم.
إنشاء مشروع Firebase
يبدأ كل شيء من وحدة تحكم Firebase على العنوان console.firebase.google.com.
- انقروا على Add project وأدخلوا اسمًا له.
- يرتبط كل مشروع Firebase بمشروع Google Cloud من وراء الكواليس.
- يمكن لمشروع Firebase واحد أن يضم عدة تطبيقات، مثل Android وiOS والويب.
داخل المشروع، سجّلوا تطبيق Android المحدد باستخدام معرّف التطبيق (اسم الحزمة)، مثل com.coddykit.demo. يستخدم Firebase هذا المعرّف لمعرفة التطبيق الذي يأتي منه كل طلب.
ملف google-services.json
عند تسجيل تطبيق Android الخاص بكم، ينشئ Firebase ملف إعدادات يُسمى google-services.json.
نزّلوا الملف وضعوه في المجلد الجذر لوحدة التطبيق (بجانب build.gradle.kts، داخل المجلد app/).
يحتوي ملف JSON هذا على معرّف المشروع ومفاتيح API وتفاصيل تسجيل التطبيق. تقرؤه أدوات البناء تلقائيًا، لذلك نادرًا ما تحتاجون إلى فتحه يدويًا.
// File location in your project:
// app/google-services.json
// It is generated for you and looks roughly like:
{
"project_info": {
"project_id": "my-demo-app",
"storage_bucket": "my-demo-app.appspot.com"
},
"client": [
{ "client_info": { "mobilesdk_app_id": "1:1234567890:android:abc123" } }
]
}إضافة إضافة Google Services
لتمكين Gradle من قراءة google-services.json، أضيفوا إضافة Google Services لـ Gradle.
تستخدم الطريقة الحديثة كتلة plugins مع كتالوجات الإصدارات. صرّحوا عن الإضافة في ملف البناء الجذري (مع apply false)، ثم طبّقوها في ملف بناء الوحدة.
// Root build.gradle.kts (project level)
plugins {
id("com.android.application") version "8.5.0" apply false
id("org.jetbrains.kotlin.android") version "2.0.0" apply false
id("com.google.gms.google-services") version "4.4.2" apply false
}تطبيق الإضافة في الوحدة
في build.gradle.kts الخاص بـ وحدة التطبيق، طبّقوا الإضافة حتى تعالج ملف الإعدادات أثناء عملية البناء.
من دون هذا السطر، سيفشل تهيئة Firebase وقت التشغيل حتى لو كان كل شيء آخر صحيحًا.
// app/build.gradle.kts (module level)
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.gms.google-services")
}Firebase BoM
يضم Firebase العديد من المكتبات، مثل Auth وFirestore وMessaging وAnalytics. يصبح الحفاظ على توافق إصداراتها سهلًا باستخدام Bill of Materials (BoM).
تصرّحون عن BoM مرة واحدة، ثم تضيفون كل اعتماد من Firebase من دون إصدار — إذ يختار BoM الإصدارات المتوافقة نيابةً عنكم.
// app/build.gradle.kts -> dependencies { }
dependencies {
// One BoM controls all Firebase versions
implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
// No version numbers here - the BoM decides
implementation("com.google.firebase:firebase-auth")
implementation("com.google.firebase:firebase-firestore")
implementation("com.google.firebase:firebase-messaging")
}التهيئة التلقائية
قد تتوقعون استدعاء شيء مثل Firebase.initialize() في فئة Application. لكن مع SDK الحديث، لا تحتاجون عادةً إلى ذلك.
تنشئ إضافة Google Services موفّر تهيئة تلقائيًا، ويُشغّل عند بدء التطبيق باستخدام google-services.json. وبحلول بدء تشغيل Activity، يكون Firebase جاهزًا.
// You normally do NOT need this anymore:
// FirebaseApp.initializeApp(context)
// Firebase is initialized automatically on app launch.
// You can just start using a service:
import com.google.firebase.Firebase
import com.google.firebase.firestore.firestore
val db = Firebase.firestore // ready to useأسلوب Kotlin KTX
يوفّر Firebase أدوات وصول اصطلاحية لـ Kotlin عبر الكائن Firebase. بدلًا من FirebaseFirestore.getInstance()، تكتبون Firebase.firestore.
تبدو هذه الامتدادات أكثر طبيعية عند القراءة، وهي الأسلوب الموصى به في شيفرة Android الحديثة.
import com.google.firebase.Firebase
import com.google.firebase.auth.auth
import com.google.firebase.firestore.firestore
import com.google.firebase.messaging.messaging
val auth = Firebase.auth // FirebaseAuth
val db = Firebase.firestore // FirebaseFirestore
val fcm = Firebase.messaging // FirebaseMessaging
// Equivalent old style:
// val auth = FirebaseAuth.getInstance()إضافة إذن الإنترنت
يتواصل Firebase مع خوادم Google، لذلك يحتاج تطبيقكم إلى الوصول إلى الشبكة. صرّحوا عن إذن INTERNET في ملف البيان.
هذا إذن عادي، ويُمنح تلقائيًا عند التثبيت، ولا يحتاج إلى طلب وقت التشغيل.
<!-- AndroidManifest.xml -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application ... >
<!-- activities, services -->
</application>
</manifest>التحقق من الاتصال
تتمثل إحدى الطرق السريعة للتأكد من نجاح الإعداد في قراءة قيمة أو التحقق من تطبيق Firebase الحالي. إذا لم تتم تهيئة Firebase، فسيؤدي الوصول إلى إحدى خدماته إلى طرح استثناء.
يضيف العديد من المطورين أيضًا اعتماد Analytics مؤقتًا ويبحثون عن حدث في وحدة التحكم كاختبار سريع، لكن مجرد الوصول إلى إحدى الخدمات في الشيفرة يثبت بالفعل صحة الربط.
import android.util.Log
import com.google.firebase.Firebase
import com.google.firebase.firestore.firestore
fun verifyFirebase() {
val app = Firebase.firestore.app
Log.d("Firebase", "Connected to project: ${app.options.projectId}")
}أخطاء الإعداد الشائعة
إذا لم يعمل Firebase، فتحققوا أولًا من الأمور التالية:
- اسم الحزمة غير صحيح — يجب أن يطابق applicationId الخاص بالتطبيق ما سجّلتموه.
- ملف google-services.json مفقود — يجب أن يكون داخل المجلد
app/. - نسيان تطبيق الإضافة في ملف بناء الوحدة.
- عدم وجود إذن INTERNET في ملف البيان.
- عدم إضافة بصمة SHA-1 — وهي مطلوبة لاحقًا لتسجيل الدخول باستخدام Google.
تحقق سريع
ما الغرض من ملف google-services.json؟
مراجعة: اكتمل الإعداد
لقد وصلتم تطبيق Android بـ Firebase. الخطوات الأساسية:
- أنشئوا مشروعًا في وحدة تحكم Firebase وسجّلوا تطبيقكم باستخدام اسم الحزمة.
- أضيفوا
google-services.jsonإلى المجلدapp/. - طبّقوا إضافة Google Services وأضيفوا Firebase BoM والمكتبات التي تحتاجون إليها.
- يُجري Firebase التهيئة تلقائيًا — ويمكنكم الوصول إلى الخدمات عبر
Firebase.authوFirebase.firestoreوغيرهما. - لا تنسوا إذن INTERNET.
التالي: تسجيل دخول المستخدمين باستخدام Firebase Authentication.
الأسئلة الشائعة
هل درس «إعداد Firebase» مجاني؟
نعم — نص درس «إعداد Firebase» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 4 دروس في المجموع.
ماذا ستتعلم في «إعداد Firebase»؟
صِل تطبيقك بمشروع Firebase تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟
لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «إعداد Firebase»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟
نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.