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

إذا لم تكن قد فعلت ذلك بالفعل، إضافة Firebase إلى مشروع Android

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

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

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

    وضع الاختبار

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

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

    وضع القفل

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

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

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

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

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

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

عند تمكين قاعدة البيانات في الوقت الفعلي، فإنها تؤدي أيضًا إلى تمكين واجهة برمجة التطبيقات في مدير Cloud API

إضافة حزمة تطوير البرامج (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.1.2"))

    // 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) من 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 BoM)، بإمكان مطوّري برامج 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 للحصول على مساعدة من خبير.

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

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

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

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