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

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

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

  1. انتقل إلى قسم قاعدة بيانات الوقت الفعلي في وحدة تحكم 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، فإنه يعمل أيضًا على تمكين واجهة برمجة التطبيقات (API) في Cloud API Manager .

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

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

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:32.8.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.3.1")
}
هل تبحث عن وحدة مكتبة خاصة بـ Kotlin؟ بدءًا من أكتوبر 2023 (Firebase BoM 32.5.0) ، يمكن لمطوري Kotlin وJava الاعتماد على وحدة المكتبة الرئيسية (لمزيد من التفاصيل، راجع الأسئلة الشائعة حول هذه المبادرة ).

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

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

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

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

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

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

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

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