Przejdź na interfejsy API rozszerzeń Kotlin (KTX) w modułach głównych

Firebase coraz bardziej angażuje się w Kotlin i pracuje nad modernizacją ekosystemu Androida, aby ułatwić dostęp do Kotlina i ułatwić jego używanie w Firebase.

Aby to osiągnąć, wprowadzamy kilka zmian w pakietach SDK Firebase na Androida. Na tej stronie znajdziesz ważne informacje o tej zmianie, w tym:


Jak przenieść aplikację

Co się zmienia?

Interfejsy API rozszerzeń Kotlina (KTX) zostały dodane do odpowiednich głównych modułów. Na przykład wszystkie interfejsy API z firebase-perf-ktx zostały dodane do pakietu firebase-perf w ramach pakietu com.google.firebase.perf.

Ta zmiana oznacza, że deweloperzy Kotlina mogą teraz polegać na głównych modułach zamiast na modułach KTX (przy użyciu Firebase BoM w wersji 32.5.0 lub nowszej lub wersji głównego modułu wymienionej w BoM w wersji 32.5.0 lub nowszej).

W ramach tej zmiany interfejsy API rozszerzeń Kotlina (KTX) we wszystkich modułach KTX są teraz przestarzałe. Już we wrześniu 2024 r. nie będziemy już wydawać modułów KTX. W tym samym czasie usuniemy też biblioteki KTX z poziomu Firebase Android BoM.

Dlaczego wprowadzamy tę zmianę?

Firebase jest oddana ekosystemowi Kotlin dla deweloperów aplikacji na Androida. Modernizacja opakowania przynosi następujące korzyści:

  • Uproszczone zarządzanie zależnościami: teraz wystarczy, że zależność będzie się opierać na jednym module, co eliminuje konieczność przełączania się między modułem głównym a rozszerzeniami Kotlina lub zależność od obu.

  • Ulepszona obsługa Kotlina: wszystkie pakiety SDK Firebase na Androida będą teraz lepiej obsługiwać Kotlina. Wszystkie nowe funkcje zgodne z Kotlinem uwzględnimy bezpośrednio w głównych modułach.

Ważne daty dotyczące tej zmiany

Październik 2023 r.

Interfejsy API rozszerzeń Kotlina (KTX) zostały dodane do odpowiednich modułów głównych, co oznacza, że teraz możesz używać interfejsów API KTX bezpośrednio z modułów głównych, korzystając z wersji Firebase BoM 32.5.0 lub nowszych lub wersji modułów głównych wymienionych w BoM 32.5.0 lub nowszych.

Równocześnie wycofane zostały interfejsy API rozszerzenia Kotlin (KTX) w modułach KTX (patrz informacje o wersji opisujące tę zmianę). W fazie wycofywania wycofane interfejsy API w modułach KTX będą nadal działać i być obsługiwane.

Już we wrześniu 2024 r.

Przestaniemy wydawać nowe wersje modułów KTX i usuniemy je z Firebase BoM.

Wcześniejsze wersje modułu KTX lub BoM będą nadal działać, ale zakończy się ich obsługa. Oznacza to, że przestaniemy dodawać do modułów KTX poprawki błędów, zmiany zapewniające zgodność wsteczną i nowe funkcje. Zamiast tego cała przyszła praca nad Firebase na Androida będzie realizowana w głównych modułach (zarówno w przypadku Javy, jak i Kotlina).

Jak przejść na korzystanie z interfejsów KTX z głównych modułów

Jeśli używasz interfejsów API w rozszerzeniach Kotlina (KTX), wprowadź w aplikacji te zmiany, aby zacząć używać interfejsów API z głównych modułów zamiast modułów KTX.

  1. Zmodyfikuj zależności Gradle, aby używały modułu głównego zamiast modułu KTX. Jeśli na przykład używasz Firebase Android BoM (zalecane):

    ZANIM

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

    PO

    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:33.10.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. Zaktualizuj kod, aby zastąpić wszystkie wystąpienia interfejsów KTX interfejsami przeniesionymi do głównego modułu w pakiecie com.google.firebase.

    ZANIM

    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

    PO

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