إذا لم تكن قد فعلت ذلك بالفعل، إضافة Firebase إلى مشروع Android
إنشاء قاعدة بيانات
انتقِل إلى قسم Realtime Database في وحدة تحكّمFirebase. سيُطلب منك اختيار مشروع حالي في Firebase. اتّبِع سير عمل إنشاء قاعدة البيانات.
اختَر وضعًا أوليًا لتطبيق Firebase Security Rules:
- وضع الاختبار
جيدة لبدء استخدام مكتبات برامج الجوّال والويب، ولكنه يتيح لأي شخص قراءة بياناتك واستبدالها. بعد الاختبار، احرص على قراءة القسم فهم قواعد قاعدة بيانات Firebase في الوقت الفعلي .
لبدء استخدام الويب أو Apple أو حزمة تطوير البرامج (SDK) لنظام التشغيل Android، اختَر "وضع الاختبار".
- وضع القفل
رفض جميع عمليات القراءة والكتابة من برامج الويب والأجهزة الجوّالة سيظل بإمكان خوادم التطبيقات التي تمت مصادقتها الوصول إلى قاعدة البيانات الخاصة بك.
اختَر موقعًا لقاعدة البيانات.
استنادًا إلى موقع قاعدة البيانات، سيظهر عنوان URL لقاعدة البيانات الجديدة بأحد الأشكال التالية:
(لـ قواعد البيانات فيDATABASE_NAME.firebaseio.com
us-central1
) (لقواعد البيانات في جميع المواقع الأخرى)DATABASE_NAME.REGION.firebasedatabase.app
انقر على تم.
عند تفعيل Realtime Database، يتم أيضًا تفعيل واجهة برمجة التطبيقات في مدير واجهة برمجة تطبيقات Cloud
أضِف حزمة تطوير البرامج (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:33.2.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، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Android في Firebase.
(بديل) إضافة اعتماديات مكتبة 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:21.0.0") }
إعداد "Realtime Database Security Rules"
وتوفّر Realtime Database لغة قواعد تعريفية تسمح لك بتحديد كيف يجب هيكلة بياناتك، وكيف ينبغي أن تكون الفهرسة، ومتى يمكن قراءة البيانات منها والكتابة إليها.
الكتابة في قاعدة البيانات الخاصة بك
استرداد نسخة افتراضية من قاعدة البيانات باستخدام getInstance()
و
تشير إلى الموقع الذي تريد الكتابة إليه.
Kotlin+KTX
// 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 . عند حفظ كائن، سيتم حفظ الردود من أي ردود على الأطفال من هذا الموقع.
القراءة من قاعدة البيانات
لتعديل بيانات تطبيقك في الوقت الفعلي، عليك إضافة
ValueEventListener
إلى المرجع الذي أنشأته للتو.
يتم تشغيل طريقة onDataChange()
في هذا الصف مرة واحدة عندما يكون المستمع
ومرة أخرى في كل مرة تتغير فيها البيانات، بما في ذلك الأطفال.
Kotlin+KTX
// 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 للحصول على مساعدة من خبير.
الاستعداد للإطلاق
قبل إطلاق التطبيق، ننصحك بالاطّلاع على قائمة التحقق من الإطلاق للتأكّد من أنّ تطبيقك جاهزة للانطلاق!
احرص على تفعيل App Check للمساعدة في التأكد من: يمكن لتطبيقاتك فقط الوصول إلى قواعد البيانات لديك.