ربط تطبيقك بمنصّة Firebase

أضِف Firebase إلى مشروع Android إذا لم يسبق لك إجراء ذلك.

إنشاء قاعدة بيانات

  1. انتقِل إلى قسم Realtime Database ضمن وحدة تحكُّم Firebase. سيُطلب منك اختيار مشروع حالي في Firebase. اتّبِع سير عمل إنشاء قاعدة البيانات.

  2. اختَر وضع بدء لقواعد أمان Firebase:

    وضع الاختبار

    جيدة لبدء استخدام مكتبات برامج الويب والجوَّال، ولكنها تسمح لأي شخص بقراءة بياناتك واستبدالها. بعد الاختبار، احرص على مراجعة قسم فهم قواعد بيانات Firebase في الوقت الفعلي.

    لبدء استخدام الويب أو Apple أو حزمة تطوير البرامج (SDK) لنظام التشغيل Android، اختَر "وضع الاختبار".

    وضع القفل

    رفض جميع عمليات القراءة والكتابة من برامج الويب والأجهزة الجوّالة سيظل بإمكان خوادم التطبيقات التي تمت مصادقتها الوصول إلى قاعدة البيانات الخاصة بك.

  3. اختَر موقعًا لقاعدة البيانات.

    بناءً على موقع قاعدة البيانات، سيكون عنوان URL لقاعدة البيانات الجديدة بأحد الأشكال التالية:

    • DATABASE_NAME.firebaseio.com (لقواعد البيانات في us-central1)

    • DATABASE_NAME.REGION.firebasedatabase.app (لقواعد البيانات في جميع المواقع الجغرافية الأخرى)

  4. انقر على تم.

عند تفعيل قاعدة البيانات في الوقت الفعلي، يتم أيضًا تفعيل واجهة برمجة التطبيقات في Cloud API Manager.

إضافة حزمة تطوير البرامج (SDK) لقاعدة البيانات في الوقت الفعلي إلى تطبيقك

في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً <project>/<app-module>/build.gradle.kts أو <project>/<app-module>/build.gradle)، أضِف التبعية لمكتبة قاعدة البيانات في الوقت الفعلي لنظام التشغيل Android. ننصح باستخدام بنود سياسة Android في Firebase للتحكّم في نُسَخ المكتبة.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.0.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")
}

باستخدام أداة إدارة قوائم التشغيل Android في Firebase، سيستخدم تطبيقك دائمًا الإصدارات المتوافقة من مكتبات Android في Firebase.

(بديل) إضافة ملحقات مكتبة Firebase بدون استخدام BoM

إذا اخترت عدم استخدام قائمة العناصر في Firebase، يجب تحديد كل إصدار من مكتبة 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")
}
هل تبحث عن وحدة مكتبة خاصة بلغة Kotlin؟ اعتبارًا من تشرين الأول (أكتوبر) 2023 (الإصدار 32.5.0 من Firebase)، أصبح بإمكان مطوّري لغة Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (لمعرفة التفاصيل، يُرجى الاطّلاع على الأسئلة الشائعة حول هذه المبادرة).

إعداد قواعد أمان قاعدة البيانات في الوقت الفعلي

توفر قاعدة البيانات في الوقت الفعلي لغة قواعد تعريفية تتيح لك تحديد كيفية هيكلة بياناتك وكيفية فهرستها ومتى يمكن قراءة البيانات منها وكتابتها.

الكتابة في قاعدة البيانات الخاصة بك

استرجع نسخة افتراضية من قاعدة البيانات باستخدام 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 للحصول على المساعدة من أحد الخبراء.

الاستعداد للإطلاق

قبل إطلاق التطبيق، ننصحك بالاطّلاع على قائمة التحقّق الخاصة بالإطلاق للتأكّد من أنّ تطبيقك جاهز للاستخدام.

احرص على تفعيل ميزة فحص التطبيقات لضمان وصول تطبيقاتك فقط إلى قواعد بياناتك.

الخطوات التالية