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

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

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

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

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

    وضع الاختبار

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

    لبدء استخدام الويب أو حزمة تطوير البرامج (SDK) من Apple أو Android، اختَر testmode.

    وضع القفل

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

  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. ننصحك باستخدام برنامج Firebase Android BoM للتحكّم في إصدارات المكتبة.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.1.1"))

    // 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 BoM، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات 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 ( Firebase BoM 32.5.0)، أصبح بإمكان مطوّري لغتَي 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 في الوقت الفعلي" في تطبيقك مع 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 للمساعدة في ضمان وصول تطبيقاتك فقط إلى قواعد بياناتك.

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