Cách triển khai Hilt với Firebase trong Android

Feb 07 2023
Hilt là một khuôn khổ tiêm phụ thuộc dành cho Android cung cấp một cách tiêu chuẩn để quản lý các phụ thuộc trong ứng dụng của bạn. Firebase là một nền tảng Backend-as-a-Service (BaaS) cung cấp nhiều dịch vụ cho các ứng dụng web và di động.

Hilt là một khuôn khổ tiêm phụ thuộc dành cho Android cung cấp một cách tiêu chuẩn để quản lý các phụ thuộc trong ứng dụng của bạn. Firebase là một nền tảng Backend-as-a-Service (BaaS) cung cấp nhiều dịch vụ cho các ứng dụng web và di động. Trong blog này, chúng ta sẽ xem cách triển khai Hilt với Firebase trong ứng dụng Android.

Bản quyền hình ảnh của android-developers

Bước 1: Thêm phụ thuộc Hilt và Firebase vào dự án của bạn

Trước tiên, hãy thêm phần phụ thuộc Hilt vào tệp build.gradle cấp ứng dụng của bạn. Phiên bản mới nhất của Hilt tại thời điểm viết bài này là 2.28-alpha:

implementation 'com.google.dagger:hilt-android:2.28-alpha'
annotationProcessor 'com.google.dagger:hilt-android-compiler:2.28-alpha'

implementation 'com.google.firebase:firebase-core:20.2.0'
implementation 'com.google.firebase:firebase-auth:20.2.0'
implementation 'com.google.firebase:firebase-firestore:21.5.0'

Tạo một lớp Ứng dụng và chú thích nó bằng @HiltAndroidApp. Lớp này đóng vai trò là điểm vào cho Hilt và được sử dụng để khởi tạo các thành phần Hilt trong ứng dụng của bạn.

@HiltAndroidApp
class MyApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    // Initialize Firebase
    FirebaseApp.initializeApp(this)
  }
}

Tạo mô-đun Hilt cho Firebase để cung cấp các phụ thuộc cho các thành phần khác trong ứng dụng của bạn. Một mô-đun là một lớp xác định cách cung cấp các phụ thuộc. Để tạo mô-đun Hilt, hãy chú thích lớp bằng @Modulevà@InstallIn(SingletonComponent::class)

@Module
@InstallIn(SingletonComponent::class)
class FirebaseModule {
  @Provides
  fun provideFirebaseAuth(): FirebaseAuth {
    return FirebaseAuth.getInstance()
  }

  @Provides
  fun provideFirebaseFirestore(): FirebaseFirestore {
    return FirebaseFirestore.getInstance()
  }
}

Để sử dụng các phần phụ thuộc của Firebase trong các thành phần của bạn, hãy sử dụng @Injectchú thích để khai báo các phần phụ thuộc. Ví dụ: để sử dụng FirebaseAuth trong Hoạt động, hãy thêm đoạn mã sau

class MainActivity : AppCompatActivity() {
  @Inject lateinit var firebaseAuth: FirebaseAuth
  @Inject lateinit var firebaseFirestore: FirebaseFirestore

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    // Use firebaseAuth and firebaseFirestore
  }
}

Cập nhật AndroidManifest.

Việc tìm kiếm hỗ trợ triển khai đầy đủ cho phép nội xạ phụ thuộc với Firebase hơi phức tạp, nhưng trong một bài viết khác, chúng ta sẽ tìm hiểu cách triển khai nó trong các lớp khác nhau của nó để duy trì cấu trúc chính xác và rõ ràng cho dự án của chúng ta.