انتقل إلى استخدام واجهات برمجة تطبيقات ملحقات Kotlin (KTX) في الوحدات الرئيسية

تعمل Firebase على زيادة التزامها بـ Kotlin، ونحن نعمل على تحديث نظام Android البيئي الخاص بنا لجعل الوصول إلى Kotlin أكثر سهولة وسهولة في الاستخدام مع Firebase.

لإنجاز هذا التحديث، فإننا نجري بعض التغييرات على حزم Firebase SDK الخاصة بنا لنظام التشغيل Android. توضح هذه الصفحة معلومات مهمة حول هذا التغيير، بما في ذلك:

ما الذي يتغير؟

تمت إضافة واجهات برمجة تطبيقات ملحقات Kotlin (KTX) إلى الوحدات الرئيسية الخاصة بها. على سبيل المثال، تمت إضافة جميع واجهات برمجة التطبيقات من firebase-perf-ktx إلى firebase-perf ضمن الحزمة com.google.firebase.perf .

يعني هذا التغيير أن مطوري Kotlin يمكنهم الآن الاعتماد على الوحدات الرئيسية بدلاً من وحدات KTX (عند استخدام Firebase BoM v32.4.0+ أو إصدارات الوحدة الرئيسية المدرجة في BoM v32.4.0+).

وكجزء من هذا التغيير، تم الآن إهمال واجهات برمجة تطبيقات ملحقات Kotlin (KTX) في كل وحدة KTX. اعتبارًا من أبريل 2024، لن نصدر وحدات KTX بعد الآن، وسنقوم أيضًا بإزالة مكتبات KTX من Firebase Android BoM في ذلك الوقت.

لماذا نقوم بهذا التغيير؟

تلتزم Firebase بنظام Kotlin الأول لمطوري Android. يوفر تحديث التغليف هذا المزايا التالية:

  • إدارة التبعية المبسطة: ما عليك الآن سوى الاعتماد على وحدة واحدة، مما يلغي الحاجة إلى التبديل بين الوحدة الرئيسية وامتدادات Kotlin أو الاعتماد على كليهما.

  • دعم Kotlin المحسّن: ستوفر الآن جميع حزم Firebase SDK لنظام التشغيل Android دعمًا أفضل لـ Kotlin. سنقوم بتضمين جميع الميزات الجديدة المتوافقة مع لغة Kotlin مباشرةً في وحداتنا الرئيسية.

مواعيد مهمة لهذا التغيير

تعرف على المعالم الرئيسية لهذا التغيير.

في أكتوبر 2023

تمت إضافة واجهات برمجة تطبيقات امتدادات Kotlin (KTX) إلى الوحدات الرئيسية الخاصة بها، وتم إهمال واجهات برمجة تطبيقات امتدادات Kotlin (KTX) في كل وحدة KTX. راجع ملاحظات الإصدار التي تعلن عن هذا التغيير.

يمكنك الآن استخدام واجهات برمجة التطبيقات KTX مباشرة من الوحدات الرئيسية عند استخدام Firebase BoM v32.4.0+ أو إصدارات الوحدة الرئيسية المدرجة في BoM v32.4.0+.

خلال هذه المرحلة المهملة ، ستستمر واجهات برمجة التطبيقات المهملة في وحدات KTX في العمل وستتم صيانتها.

في وقت مبكر من أبريل 2024

سنتوقف عن إطلاق إصدارات جديدة من وحدات KTX، وسنقوم بإزالة وحدات KTX من Firebase BoM.

ستستمر أي نسخة تم إصدارها مسبقًا من وحدة KTX أو BoM في العمل، ولكنها ستدخل في مرحلة نهاية الصيانة . وهذا يعني أننا سنتوقف عن إضافة إصلاحات الأخطاء والتغييرات المتوافقة مع الإصدارات السابقة والميزات الجديدة إلى وحدات KTX. وبدلاً من ذلك، سيتم تنفيذ كل التطوير المستقبلي لـ Firebase على Android في الوحدات الرئيسية (لكل من Java وKotlin).

كيفية الترحيل لاستخدام واجهات برمجة تطبيقات KTX من الوحدات الرئيسية

إذا كنت تستخدم حاليًا واجهات برمجة تطبيقات ملحقات Kotlin (KTX)، فقم بإجراء التحديثات التالية في تطبيقك لبدء استخدام واجهات برمجة التطبيقات من الوحدات الرئيسية بدلاً من وحدات KTX.

  1. قم بمراجعة تبعيات Gradle الخاصة بك للاعتماد على الوحدة الرئيسية بدلاً من وحدة KTX. على سبيل المثال، إذا كنت تستخدم Firebase Android BoM (مستحسن) :

    قبل

    dependencies {
      // ...
    
      // Import the Firebase BoM
      implementation(platform("com.google.firebase:firebase-bom:32.4.0"))
    
      // Using KTX libraries for Authentication and Cloud Firestore
      implementation("com.google.firebase:firebase-auth-ktx")
      implementation("com.google.firebase:firebase-firestore-ktx")
    }
    

    بعد

    dependencies {
      // ...
    
      // Import the Firebase BoM as usual
      // Make sure to use Firebase BoM v32.4.0 or higher
      implementation(platform("com.google.firebase:firebase-bom:32.4.0"))
    
      // No need to use the KTX libraries, everything is now in the main module
      implementation("com.google.firebase:firebase-auth")
      implementation("com.google.firebase:firebase-firestore")
    }
    


  2. قم بتحديث الكود الخاص بك لاستبدال جميع تكرارات واجهات برمجة تطبيقات KTX بواجهات برمجة التطبيقات التي تم نقلها في الوحدة الرئيسية ضمن حزمة com.google.firebase .

    قبل

    import com.google.firebase.auth.ktx.auth
    import com.google.firebase.firestore.ktx.firestore
    import com.google.firebase.firestore.ktx.toObject
    import com.google.firebase.ktx.Firebase
    

    بعد

    import com.google.firebase.auth.auth
    import com.google.firebase.firestore.firestore
    import com.google.firebase.firestore.toObject
    import com.google.firebase.Firebase