قم بتوصيل تطبيقك بـ Firebase ، قم بتوصيل تطبيقك بـ 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 إلى تطبيقك

في ملف Gradle (على مستوى التطبيق) الوحدة النمطية الخاصة بك (عادةً ما يكون <project>/<app-module>/build.gradle ) ، أضف التبعية لمكتبة Realtime Database Android. نوصي باستخدام Firebase Android BoM للتحكم في إصدارات المكتبة.

Kotlin+KTX

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

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

(بديل) أضف تبعيات مكتبة 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-ktx:20.2.2'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:32.1.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 ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.

(بديل) أضف تبعيات مكتبة 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:20.2.2'
}

تكوين قواعد أمان قاعدة البيانات الحقيقية

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

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

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

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

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