أضِف Firebase إلى مشروع Android الخاص بك، في حال لم يسبق لك إجراء ذلك،
إنشاء قاعدة بيانات
في وحدة تحكّم Firebase، انتقِل إلى قواعد البيانات ومساحة التخزين > قاعدة بيانات الوقت الفعلي.
انقر على إنشاء قاعدة بيانات.
اختَر وضعًا لبدء استخدام Firebase Security Rules
- وضع الاختبار
هذا الوضع مناسب للبدء باستخدام مكتبات العميل على الأجهزة الجوّالة والويب، ولكنّه يسمح لأيّ مستخدم بقراءة بياناتك والكتابة فوقها. بعد الاختبار، احرص على مراجعة قسم التعرّف على قواعد "قاعدة بيانات Firebase في الوقت الفعلي".
- .
للبدء باستخدام حزمة تطوير البرامج (SDK) للويب أو Apple أو Android، اختَر testmode.
- وضع القفل
يمنع هذا الوضع جميع عمليات القراءة والكتابة من عملاء الأجهزة الجوّالة والويب. سيظل بإمكان خوادم التطبيقات التي تم التحقّق من هويتها الوصول إلى قاعدة البيانات.
اختَر موقعًا جغرافيًا لقاعدة البيانات.
حسب موقع قاعدة البيانات، سيكون عنوان URL لقاعدة البيانات الجديدة بأحد التنسيقَين التاليَين:
(لقواعد البيانات فيDATABASE_NAME.firebaseio.comus-central1) (لقواعد البيانات في جميع المواقع الجغرافية الأخرى)DATABASE_NAME.REGION.firebasedatabase.app
انقر على تم.
عند تفعيل Realtime Database، يتم أيضًا تفعيل واجهة برمجة التطبيقات في Cloud API Manager.
إضافة حزمة تطوير البرامج (SDK) الخاصة بـ Realtime Database إلى تطبيقك
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً<project>/<app-module>/build.gradle.kts أو
<project>/<app-module>/build.gradle)،
أضِف الاعتمادية لمكتبة Realtime Database لنظام التشغيل Android. ننصحك باستخدام الـ
Firebase Android BoM
للتحكّم في تحديد إصدار المكتبة.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.12.0")) // Add the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database") }
باستخدام Firebase Android BoM، سيستخدِم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase لنظام التشغيل Android.
(بديل) إضافة اعتماديات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام Firebase BoM، عليك تحديد إصدار كل مكتبة من مكتبات Firebase في سطر الاعتمادية الخاص بها.
يُرجى العِلم أنّه إذا كنت تستخدم مكتبات متعدّدة من Firebase في تطبيقك، ننصحك بشدة باستخدام BoM لإدارة إصدارات المكتبات، ما يضمن توافق جميع الإصدارات.
dependencies { // Add the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database:22.0.1") }
ضبط Realtime Database Security Rules
توفر Realtime Database لغة قواعد تعريفية تتيح لك تحديد كيفية تنظيم بياناتك وكيفية فهرستها ومتى يمكن قراءة بياناتك والكتابة فيها.
الكتابة في قاعدة البيانات
يمكنك استرداد مثيل لقاعدة البيانات باستخدام getInstance() والإشارة إلى الموقع الذي تريد الكتابة فيه.
Kotlin
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
يمكنك حفظ مجموعة من أنواع البيانات في قاعدة البيانات بهذه الطريقة، بما في ذلك كائنات Java. عند حفظ كائن، سيتم حفظ الردود من أي دوال getter كعناصر فرعية لهذا الموقع.
القراءة من قاعدة البيانات
لجعل بيانات تطبيقك يتم تحديثها في الوقت الفعلي، عليك إضافة
ValueEventListener
إلى المرجع الذي أنشأته للتو.
يتم استدعاء طريقة onDataChange() في هذه الفئة مرة واحدة عند إرفاق المستمع، ومرة أخرى في كل مرة تتغيّر فيها البيانات، بما في ذلك العناصر الفرعية.
Kotlin
// Read from the database myRef.addValueEventListener(object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. val value = dataSnapshot.getValue<String>() Log.d(TAG, "Value is: $value") } override fun onCancelled(error: DatabaseError) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()) } })
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. String value = dataSnapshot.getValue(String.class); Log.d(TAG, "Value is: " + value); } @Override public void onCancelled(@NonNull DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
اختياري: ضبط ProGuard
عند استخدام Firebase Realtime Database في تطبيقك مع ProGuard، عليك
مراعاة كيفية تسلسل كائنات النموذج وإلغاء تسلسلها بعد
التشويش. إذا كنت تستخدم DataSnapshot.getValue(Class) أو DatabaseReference.setValue(Object) لقراءة البيانات وكتابتها، عليك إضافة قواعد إلى ملف proguard-rules.pro:
# Add this global rule
-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models.
# Modify this rule to fit the structure of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
للحصول على مساعدة بشأن الأسئلة أو المشاكل المتعلقة بـ ProGuard، يُرجى الانتقال إلى منتديات Guardsquare Community للحصول على مساعدة من أحد الخبراء.
الاستعداد للإطلاق
قبل إطلاق تطبيقك، ننصحك بالاطّلاع على قائمة التحقّق من الإطلاق للتأكّد من أنّ تطبيقك جاهز.
احرص على تفعيل ميزة App Check للمساعدة في ضمان إمكانية وصول تطبيقاتك فقط إلى قواعد البيانات.
الخطوات التالية
- التعرّف على كيفية تنظيم البيانات لـ Realtime Database
- توسيع نطاق بياناتك على مستوى عدّة مثيلات لقاعدة البيانات.
- قراءة البيانات وكتابتها.
- عرض قاعدة البيانات في وحدة التحكّم Firebase.