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

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

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


یاد بگیرید چگونه برنامه خود را مهاجرت دهید

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

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

این تغییر به این معنی است که توسعه‌دهندگان کاتلین اکنون می‌توانند به جای ماژول‌های KTX به ماژول‌های اصلی وابسته باشند (هنگام استفاده از Firebase BoM ۳۲.۵.۰+ یا نسخه‌های ماژول اصلی ذکر شده در BoM ۳۲.۵.۰+).

در ژوئیه ۲۰۲۵، انتشار نسخه‌های جدید ماژول‌های KTX را متوقف کردیم و کتابخانه‌های KTX را از Firebase Android BoM (نسخه ۳۴.۰.۰) حذف کردیم.

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

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

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

  • پشتیبانی بهبود یافته از کاتلین: اکنون تمام کیت‌های توسعه نرم‌افزار (SDK) فایربیس ما برای اندروید، پشتیبانی بهتری از کاتلین ارائه می‌دهند. ما تمام ویژگی‌های جدید سازگار با کاتلین را مستقیماً در ماژول‌های اصلی خود قرار خواهیم داد.

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

در اکتبر ۲۰۲۳

در اکتبر ۲۰۲۳، APIهای افزونه‌های کاتلین (KTX) به ماژول‌های اصلی مربوطه اضافه شدند، به این معنی که اکنون می‌توانید هنگام استفاده از Firebase BoM نسخه ۳۲.۵.۰+ یا نسخه‌های ماژول اصلی ذکر شده در BoM نسخه ۳۲.۵.۰+، مستقیماً از ماژول‌های اصلی از APIهای KTX استفاده کنید.

به موازات آن، APIهای افزونه کاتلین (KTX) در ماژول‌های KTX منسوخ شدند (به یادداشت‌های انتشار که این تغییر را شرح می‌دهند مراجعه کنید). در طول مرحله منسوخ شدن ، APIهای منسوخ شده در ماژول‌های KTX به عملکرد خود ادامه داده و نگهداری خواهند شد.

در ژوئیه ۲۰۲۵

در ژوئیه ۲۰۲۵، انتشار نسخه‌های جدید ماژول‌های KTX را متوقف کردیم و ماژول‌های KTX را از Firebase BoM (با شروع از BoM نسخه ۳۴.۰.۰ ) حذف کردیم.

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

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

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

  1. وابستگی‌های Gradle خود را اصلاح کنید تا به جای ماژول KTX، به ماژول اصلی متکی باشند. برای مثال، اگر از Firebase Android BoM (توصیه می‌شود) استفاده می‌کنید:

    قبل از

    dependencies {
      // ...
    
      // Import the Firebase BoM
      implementation(platform("com.google.firebase:firebase-bom:34.6.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.5.0 or higher
      implementation(platform("com.google.firebase:firebase-bom:34.6.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