التثبيت والإعداد على Android

اربط تطبيقك بـ Firebase

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

أنشئ قاعدة بيانات

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

  2. حدد وضع بدء لقواعد أمان Firebase:

    وضع الاختبار

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

    لبدء استخدام الويب أو Apple أو Android SDK ، حدد وضع الاختبار.

    وضع القفل

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

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

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

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

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

  4. انقر فوق تم .

عند تمكين Realtime Database ، فإنه يُمكِّن أيضًا واجهة برمجة التطبيقات في Cloud API Manager .

أضف Realtime Database SDK إلى تطبيقك

باستخدام Firebase Android BoM ، أعلن عن تبعية مكتبة Realtime Database Android في ملف Gradle (على مستوى التطبيق) (عادةً app/build.gradle ).

جافا

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

    // Declare 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 {
    // Declare 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:20.0.3'
}

Kotlin + KTX

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

    // Declare 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-ktx'
}

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

(بديل) قم بتعريف تبعيات مكتبة Firebase بدون استخدام BoM

إذا اخترت عدم استخدام Firebase BoM ، فيجب عليك تحديد كل إصدار من إصدارات مكتبة Firebase في سطر التبعية الخاص بها.

لاحظ أنه إذا كنت تستخدم مكتبات Firebase متعددة في تطبيقك ، فإننا نوصي بشدة باستخدام BoM لإدارة إصدارات المكتبة ، مما يضمن توافق جميع الإصدارات.

dependencies {
    // Declare 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-ktx:20.0.3'
}

تكوين قواعد قاعدة بيانات Realtime

توفر Realtime Database لغة قواعد تعريفية تتيح لك تحديد كيفية هيكلة بياناتك ، وكيف ينبغي فهرستها ، ومتى يمكن قراءة البيانات الخاصة بك والكتابة إليها.

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

استرجع نسخة من قاعدة البيانات الخاصة بك باستخدام getInstance() وقم بالإشارة إلى الموقع الذي تريد الكتابة إليه.

جافا

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Kotlin + KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

يمكنك حفظ مجموعة من أنواع البيانات في قاعدة البيانات بهذه الطريقة ، بما في ذلك كائنات Java. عند حفظ كائن ، سيتم حفظ الردود من أي حروف كأبناء لهذا الموقع.

اقرأ من قاعدة البيانات الخاصة بك

لتحديث بيانات تطبيقك في الوقت الفعلي ، يجب عليك إضافة ValueEventListener إلى المرجع الذي أنشأته للتو.

يتم تشغيل طريقة onDataChange() في هذه الفئة مرة واحدة عند توصيل المستمع ومرة ​​أخرى في كل مرة تتغير فيها البيانات ، بما في ذلك الأطفال.

جافا

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(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(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

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())
    }
})

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

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

قبل بدء تشغيل تطبيقك ، نوصي بالاطلاع على قائمة التحقق الخاصة بالتشغيل للتأكد من أن تطبيقك جاهز للعمل!

تأكد من تمكين التحقق من التطبيق للمساعدة في ضمان أن تطبيقاتك فقط يمكنها الوصول إلى قواعد البيانات الخاصة بك.

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