به استفاده از برنامه های افزودنی Kotlin (KTX) در ماژول های اصلی مهاجرت کنید

Firebase تعهد خود را به Kotlin افزایش می‌دهد و ما در تلاش هستیم تا اکوسیستم Android خود را مدرن‌سازی کنیم تا Kotlin را با Firebase در دسترس‌تر و آسان‌تر کنیم.

برای انجام این مدرن‌سازی، چند تغییر در Firebase SDK خود برای Android ایجاد می‌کنیم. این صفحه اطلاعات مهمی را در مورد این تغییر شرح می دهد، از جمله:

چه چیزی در حال تغییر است؟

APIهای افزونه های Kotlin (KTX) به ماژول های اصلی مربوطه اضافه شده اند. برای مثال، همه APIهای firebase-perf-ktx به firebase-perf در بسته com.google.firebase.perf اضافه شده‌اند.

این تغییر به این معنی است که توسعه دهندگان Kotlin اکنون می توانند به جای ماژول های KTX به ماژول های اصلی وابسته باشند (هنگامی که از Firebase BoM v32.4.0+ یا نسخه های ماژول اصلی فهرست شده در BoM v32.4.0+ استفاده می کنند).

به عنوان بخشی از این تغییر، APIهای برنامه افزودنی Kotlin (KTX) در هر ماژول KTX اکنون منسوخ شده اند. از آوریل 2024، ما دیگر ماژول‌های KTX را منتشر نمی‌کنیم، و همچنین کتابخانه‌های KTX را از Firebase Android BoM در آن زمان حذف خواهیم کرد.

چرا این تغییر را ایجاد می کنیم؟

Firebase متعهد به اولین اکوسیستم Kotlin برای توسعه دهندگان اندروید است. این نوسازی بسته بندی مزایای زیر را ارائه می دهد:

  • مدیریت وابستگی ساده: اکنون فقط باید به یک ماژول تکیه کنید و نیازی به جابجایی بین ماژول اصلی و پسوندهای Kotlin یا وابستگی به هر دو را از بین ببرید.

  • پشتیبانی پیشرفته Kotlin: همه Firebase SDK های ما برای Android اکنون پشتیبانی بهتری از Kotlin ارائه می دهند. ما تمام ویژگی های جدید سازگار با Kotlin را مستقیماً در ماژول های اصلی خود قرار خواهیم داد.

تاریخ های مهم برای این تغییر

با نقاط عطف این تغییر آشنا شوید.

در اکتبر 2023

APIهای افزونه های Kotlin (KTX) به ماژول های اصلی مربوطه اضافه شدند و API های پسوند Kotlin (KTX) در هر ماژول KTX منسوخ شدند. یادداشت‌های انتشار را که این تغییر را اعلام می‌کنند، ببینید.

اکنون می توانید هنگام استفاده از Firebase BoM v32.4.0+ یا نسخه های ماژول اصلی فهرست شده در BoM v32.4.0+، از API های KTX مستقیماً از ماژول های اصلی استفاده کنید.

در طول این مرحله منسوخ ، APIهای منسوخ در ماژول های KTX به کار خود ادامه می دهند و حفظ می شوند.

در اوایل آوریل 2024

ما انتشار نسخه‌های جدید ماژول‌های KTX را متوقف می‌کنیم و ماژول‌های KTX را از Firebase BoM حذف می‌کنیم.

هر نسخه‌ای که قبلاً از یک ماژول KTX یا BoM منتشر شده بود به کار خود ادامه می‌دهد، اما آنها وارد پایان تعمیر و نگهداری می‌شوند. این بدان معناست که ما اضافه کردن رفع اشکال، تغییرات سازگار با عقب و ویژگی‌های جدید به ماژول‌های KTX را متوقف خواهیم کرد. در عوض، تمام توسعه‌های آینده Firebase در اندروید در ماژول‌های اصلی (هم برای جاوا و هم برای Kotlin) انجام می‌شود.

نحوه مهاجرت به استفاده از API های KTX از ماژول های اصلی

اگر در حال حاضر از APIهای افزونه های Kotlin (KTX) استفاده می کنید، به روز رسانی های زیر را در برنامه خود انجام دهید تا از ماژول های اصلی به جای ماژول های KTX، از API ها استفاده کنید.

  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. کد خود را به‌روزرسانی کنید تا همه رخدادهای APIهای KTX با APIهای جابجا شده در ماژول اصلی تحت بسته 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